No GPS needed! Works on any Windows Mobile phone supported by BattClock!
If you have a GPS this is more accurate, but also drains battery.
No internet access needed on your phone, the monitored data can be translated offline to actual locations on a PC with internet access.
With that you can keep track of where you have been when or which approximate route you did take.
With triangulation in combination with Tower Signal Strength even more accurate positioning could be computed.
If you can map the cellid to a approximate Location (Langitude, Longitude) via an offline database, you even do not need internet access.
When you convert this Cell Tower Information to kml format, you can show this on Map applications, like Google Earth, Google Maps or an offline Map application which supports kml.
There is a separate application, CellTower2KML, which can convert the monitored Cell Tower Info from BattClock.csv into a kml file with the location information filled. So you can run that conversion on your PC (internet access needed).
Example kml file here, which opens in Google Maps.
The following information can be monitored (displayed, logged to BattClock.csv file or to registry):
GPRS Cell ID (not seen filled on my Touch Diamond)
GPRS Base Station ID (not seen filled on my Touch Diamond)
The following registry values can be filled, below HKEY_CURRENT_USER\Software\ZuinigeRijder\Status, so other programs (e.g. MortScript) can react on it:
[APP] [Updated 12-07-2011] BattClock version 3.6.2 *NEW* Process Monitor
Create registry path at startup, when it does not exists and is configured to show/log as REGKEY 1 till 12.
Updated Serbian translations, thanks to slavissa
Updated Hungarian translations, thanks to thorvath812
Updated Traditional Chinese translations, thanks to victorchen101
Updated Dutch translations, thanks to myself ;-)
[APP] [Updated 18-06-2011] BattClock version 3.6.1 *NEW* Process Monitor
Fixed bug that TotalUptimeBatteryMinutes and TotalUptimeChargingMinutes was increased with each BattConfig change
Added possibility to overrule default TotalUptimeRechargeMinutes Threshold of 97 by registry key HKCU\Software\ZuinigeRijder\Status\TotalUptimeRechargeMinutesThreshold
Update Spanish translation, thanks to jcmm
Update Polish translations, thanks to pupakota
Update German translations, thanks to Tokl
Update Italian translations, thanks to ephestione
Update Russian translations, thanks to Vadim Bogaiskov
[APP] [Updated 13-06-2011] BattClock version 3.6 *NEW* Process Monitor
Bug fixes:
Fixed bug that "on power" was not immediately reflected in Battery Percentage (default ~ instead of %)
Fixed bug that the when a log to file item was enabled, after restart the next one was shown in BattConfig
Fixed bug that when a log to Registry was enabled, after restart it was not shown as enabled in BattConfig
Performance improvements:
(Small) improvement in battery usage
Performance improvement when on charger
Performance improvement at "Power On"
Enhancements:
When CPU speed returns -1 just return 256 Mhz to overcome NetRipper CPU speed library bug/quirk
Extended the number of programmable registry keys from 6 to 12 to be used in Stripes and BattClock areas
Increased the maximum number of characters to display from 15 to 31
New feature to show the free disk space:
Free disk space of phone
Free disk space of storage card
New feature to show Process Information:
Process Count
Destroyed/Created processes names, prepended with resp. - and + sign, all the changes are displayed one per second, till the last change.
New feature of counting the total uptime over all BattClock sessions and total uptime for the battery (before fully charged or replaced).
MinutesUptime, the number of minutes since starting BattClock (already available)
TotalUptimeBatteryMinutes, the number of minutes for all sessions monitored by BattClock on Battery (survives reboot)
TotalUptimeChargingMinutes, the number of minutes for all sessions monitored by BattClock on Charger (survives reboot)
TotalUptimeRechargeMinutes, the number of minutes for all sessions monitored by BattClock, reset at startup/power up (when the Battery% > 97%) or when full charged (switching from charging to battery and Battery% > 97)
New feature to control the update speed of the display items in seconds via BattConfig "Other Settings" screen, (default) values how often is checked:
CircularSeconds = 3
LogToFileSeconds = 1
BatteryPollSeconds = 120
DetectBackgroundSeconds = 2
StartUpDelaySeconds = 1 (new)
CpuSeconds = 1 (new)
CpuSpeedSeconds = 3 (new)
FreeMemorySeconds = 1 (new)
RegkeyPollSeconds = 3 (new)
WifiSeconds = 1 (new)
InternetSeconds = 3 (new)
FreeDiskspaceSeconds = 60 (new)
ProcessInfoSeconds = 10 (new)
[APP] [Updated 23-02-2011] BattClock version 3.5.2 *NEW* Stripe background image
Fixed bug that display alignment got screwed up by solving "Also make it possible to align display text for Battery % when charging"
[APP] [Updated 21-02-2011] BattClock version 3.5.1 *NEW* Stripe background image
Fixed bug when showing textual registry keys
Also make it possible to align display text for Battery % when charging
Made it possible to show Volume registry key as stripe (large unsigned values)
Do not use registry key notification for Wifi to avoid problems some people encounter with Wifi
Flush BattClock.csv at least once per minute if logtofile is configured to avoid loss of data because of possible reboot/power off.
[APP] [Updated 16-02-2011] BattClock version 3.5 *NEW* Stripe background image
Fixed problem that + sign in DetectBackGround X in Others setting screen was not working
Fixed bug that import settings in BattConfig About did not remove previous settings, so the end result could be wrong (note if you import registry values directly, first remove existing ones)
Fixed that the CSV file is correctly showing the correct header for BATTERY_CURRENT or BATTERY_CURRENT_FORCE
Fixed bug that some values where only used as stripe when log was enabled for them (minutesCall, minutesDisplayOn, minutesStandby, minutesUptime)
Fixed Russian typo, thanks to d8389
Treat stripe values as unsigned instead of signed
Make it possible to show registry key HKCU\ControlPanel\Volume\Volume as a number between 0 and 100 (divide by 42949672 and unsigned arithmetic)
Reset signal strength registry key to 0 when in flight mode/radio off to overcome WM bugs/quirks
When a registry key does not exists, return 0 instead of keeping the old value
Improved performance when background image is used
Also use the Background Image for stripes, if configured
Support detectBackground negative X values to support landscape
Added option to align text horizontal (left or right) and/or vertical (top or bottom), prefix display format by < (left) or > (right) ^ (top) v (bottom) [ (left bottom), ] (right bottom) { (left top) } (right top)
Same info can be used in more than one stripe
[APP] [Updated 16-01-2011] BattClock version 3.4.3 *NEW* 6 separate BattClock press commands
Fixed bug that only the first 6 content items were shown in BattConfig when restarted
[APP] [Updated 15-01-2011] BattClock version 3.4.2 *NEW* 6 separate BattClock press commands
Fixed bug that BattClock could disappear when switching between landscape and portrait in combination with more BattClock areas
Fixed bug that different fonts sizes between portrait and landscape were not working
Make AppToDate also work when installed on SD Card or via zip file
[APP] [Updated 11-01-2011] BattClock version 3.4.1 *NEW* 6 separate BattClock press commands
Protect against OverflowException in Color Picker
Fixed bug that selecting another font was not immediately reflected
Save the BattConfig log also in the directory where the program is installed
Only keep the non-default configuration values in the Registry, to save some KiloBytes of phone memory and Registry size
Improved the size of the executables (5% smaller, 33 KB less space in total)
New Czech translations, thanks to Konrad007
Updated Russian translations, thanks to Vadim Bogaiskov
Updated Spanish translations, thanks to jcmm
Updated German translations, thanks to Tokl
[APP] [Updated 06-01-2011] BattClock version 3.4 *NEW* 6 separate BattClock press commands
Improved CPU usage when more than 1 BattClock area is used. Only update the changed BattClock Area.
Some small efficiency changes
Added possibility to couple a command to each BattClock area (so total of 6 BattClock press commands possible now).
In the Settings Content Screen, prepend the BattClock area number in which the info will be shown
Added possibility to change the minimum and maximum foreground color for all numeric values (not only Battery % and Free Memory)
Updated Russian translations, thanks to Vadim Bogaiskov
Updated Spanish translations, thanks to jcmm
[APP] [Updated 29-12-2010] BattClock version 3.3 *NEW* 6 separate BattClock areas
Added possibility to have 6 separate BattClock areas, so you have more control over where to position info
[APP] [Updated 27-12-2010] BattClock version 3.2.2 *NEW* Wifi Signal strength and Wifi Packet counters
Fixed bug that if Wifi was already enabled and then starting BattClock, it was not seen till disable/enable Wifi again
Slightly improved the battery usage
Updated Korean translations, thanks to sinfancy
Updated German translations, thanks to Tokl
Updated Italian translations, thanks to ephestione
[APP] [Updated 21-12-2010] BattClock version 3.2.1 *NEW* Wifi Signal strength and Wifi Packet counters
BattConfig: Better SIP support (vertical scroll bar) when the SIP overlaps an input control
When the background image is larger than the BattClock area, it tries to extract the BattClock region from the background image instead of scaling the whole image to the BattClock size. This makes it possible to select a taskbar background image without photo shopping needs and creating a transparant illusion.
Added also SmartControl translations to CAB/zip file
Updated Chinese Traditional translations, thanks to victorchen101
Updated Arabic translations, thanks to khaeid
Updated German translations, thanks to Tokl
Updated Korean translations, thanks to sinfancy
Updated Greek translations, thanks to colossus_r
Tip for people having a Mobile data limit, e.g. per month. You can also configure a stripe to show how far you are off the maximum of your dataplan.
Make sure to set the "Stripe Max" to the maximum value for e.g. MobileKBytesTotal and set a RegKey to
HKCU\Software\ZuinigeRijder\Status\MobileKBytesTotal
and choose that RegKey for the stripe value. When the Mobile Data limit is refreshed the next month, reset the Mobile settings.
Note that you must check if BattClock is accurate enough, so check you Mobile data limit of you provider regular (no guarantee by me ;-)
[APP] [Updated 24-9-2010] BattClock version 3.0.6 *NEW* Wifi/Mobile internet monitor and many other improvements
Fixed problem that BattConfig crashed when selecting Stripe of "Mobile Connected" or higher. Actually it was a debug log statement, which was not written by default. Fixed the problem and only do the message construction when actually debug logging is on. This also improves perfromance a bit.
Make sure that all registry settings are recreated by BattClock when "Reset" is done in BattConfig About screen to avoid non-default registry settings in later configuration.
[APP] [Updated 21-9-2010] BattClock version 3.0.5 *NEW* Wifi/Mobile internet monitor and many other improvements
Fixed problem changes were not reflected immediately (when settings changed or battery on power/on battery switch)
Implemented double buffering to prevent flickering and more smooth updates
[APP] [Updated 20-9-2010] BattClock version 3.0.4 *NEW* Wifi/Mobile internet monitor and many other improvements
Fixed problem that Uptime/Display On was not updated correctly, because the power transition notification was forgotten.
Fixed problem that switching from Landscape to Portrait was not working
Fixed problem that vertical (gradient) stripes were not drawn correctly
Update of CPU% and Free Memory back to once per second
Switch to float mode, when "Divide By" is not set to 1. Note that the registry key has been changed, to reflect this change. So people using this feature must redo the setting. Note that when you divide, you must also specify a float format (%f).
Included NetRipper's CPU Frequency dll's also in the zip file (In 3.0.3 they were only available in the CAB)
Updated German translations (thanks to Tokl)
[APP] [Updated 19-9-2010] BattClock version 3.0.3 *NEW* Wifi/Mobile internet monitor and many other improvements
Because of possibly conflicting settings and the total redesign I decided to store the settings in a new subkey:
HKCU\Software\ZuinigeRijder\BattClock3
If you used an earlier version of BattClock, you need to redo your settings. The positive effect is that you can switch back to a version before 3.0, using the old settings.
Or even use the 2 version together, e.g. by copying the older version to another place and start it manually or via a link in Windows Start.
When battery is charging and the battery is 100% alternate the stripe between the configured stripe (gradient) color and background color each second to better indicate it is fully charged
Added option to show current CPU Frequency, thanks to NetRipper (great on HD2). Supported phones: Leo/Raphael/Diamond/Topaz/Rhodium/Blackstone/Whitestone and phones having QualComm processor MSM7200, MSM7201 or Snapdragon processor QSD8250, QSD8650.
Added option to execute a command when the BattClock is pressed ("BattClockPressCommand")
Added possibility to indicate which numeric info to log to the registry instead a maximum of 6 ("LogToRegistry1" .. "LogToRegistryN"). Note that this is usefull if you want to react with other programs on these registry keys, e.g. Mortscript or HomeScreen++.
Added possibility to indicate which numeric info to log to the file instead of zero or all ("LogToFile1" .. "LogToFileN")
Added minimum elapsed seconds setting before you log to the log file ("LogToFileSeconds"). So only log file updates will be done when there is a change in one of the log items AND the minimum number of seconds have been elapsed. This can keep the log file smaller.
Added possibility to show all numeric info as stripe instead of a limited set, registry key Stripe has been changed into StripeInfo ("Stripe1Info" .. "StripeNInfo").
Added option to have a multiplier and divider for an Info value ("InfoMultiplier1".."InfoMultiplierN"), e.g. to convert a value from seconds to hours, convert from Bytes to KB or MB, etc.
Added the possibility to specify the number of Rows and Columns ("BattClockInfoRows", "BattClockInfoColumns"), so items can be shown in a tabular fashion (previous it was possible to show the items in rows only or columns only, now a combination is possible), e.g. 3x2, 2x4
Log, Debug and Reg files are now created in the same directory as were BattClock is installed. So if you install BattClock on your memory card, it will not take memory away from your phone memory.
Reused translations texts between BattConfig screens, so they need to be translated only once.
Added Korean translations, thanks to sinfancy
Added German translations, thanks to Tokl
Added Serbian translations, thanks to slavissa
Updated other translations as provided by users, thanks!
Number of content items which can be displayed increased from 6 to 12:
"BattClockInfo1".."BattClockInfo12"
"FontName1".."FontName12"
"FontType1".."FontType12"
"FontSize1".."FontSize12"
"FontSizeLandscape1".."FontSizeLandscape12"
"ClockForeground1".."ClockForeground12"
Improved ease and more ergonomic configuration in several ways:
Pressing a content item shows a list of all available content items, for easier selection (otherwise you need to press +/- several times)
Sometimes smaller +/- buttons, so more space is available for the texts
+/- buttons are now sometimes left and right of the configuration item
When there is enough space on the settings screen, moved the label above the +"value"-
Text fonts a little bit smaller, so there is more room for translated text.
Reordered the items to display, so they are better grouped together
Stripes in Landscape and stripes from right to left. Stripes Width and Height have been changed into X2 and Y2. The positions can now be negative: X, X2, Y, Y2.
X and/or X2 negative: measure from the right (great for landscape)
X2 < X: draw battstripe from right to left, instead of left to right
Vertical stripes when height is bigger than width, (Y2 - Y) > (X2 - X):
Y and/or Y2 negative: measure from the bottom (great for landscape subclassing DesktopExplorerWindow)
Y2 < Y: draw battstripe from bottom to top instead of top to bottom
Added option to monitor Wifi, possibility to display/log/stripe:
WifiConnected, indication if Wifi is connected, yes or no
WifiKBitsPerSecond, current speed in Kbits per second
WifiKBytesReceived, number of KiloBytes received for the current session
WifiKBytesSent, number of KiloBytes sent for the current session
WifiKBytes, number of KiloBytes received and sent for the current session
WifiConnectTime, connect time in seconds for the current session
WifiKBytesReceivedTotal, number of KiloBytes received for all the monitored sessions
WifiKBytesSentTotal, number of KiloBytes sent for all the monitored sessions
WifiKBytesTotal, number of KiloBytes received and sent for all the monitored sessions
WifiConnectTimeTotal, connect time in seconds for all the monitored sessions
Added option to monitor Mobile data (GSM/GPRS/3G/HDSPA), possibility to display/log/stripe:
MobileConnected, indication if Mobile data is connected, yes or no
MobileKBitsPerSecond, current speed in Kbits per second
MobileKBytesReceived, number of KiloBytes received for the current session
MobileKBytesSent, number of KiloBytes sent for the current session
MobileKBytes, number of KiloBytes received and sent for the current session
MobileConnectTime, connect time in seconds for the current session
MobileKBytesReceivedTotal, number of KiloBytes received for all the monitored sessions
MobileKBytesSentTotal, number of KiloBytes sent for all the monitored sessions
MobileKBytesTotal, number of KiloBytes received and sent for all the monitored sessions
MobileConnectTimeTotal, connect time in seconds for all the monitored sessions
Although BattClock was already leightweight (small in memory, almost no CPU usage), improved performance in several areas:
Do the computation in a workerThread instead of the UI Thread, to make the phone as responsive as possible
Only Log to Registry when configured
Use global variables instead of function calls, to improve CPU usage even more
Avoid the number of checks as much as possible (global boolean helper variables), so only the code paths are executed which are configured and CPU usage improves.
Because of the introdution of helper variables and new possibilities the Memory Usage is slightly higher, although still very very small, only 2 Kb in Memory
13-5-2010 Version 2.1.2 *NEW* 6 stripes
Fixed bug that Stripe settings were incorrectly changed when switching to next/previous stripe item
When battery is charging and battery stripe is enabled, alternate between the configured high and medium and low color each second
Added Arabic translations, thanks to khaeid
9-5-2010 Version 2.1.1 *NEW* 6 stripes
Fixed bug that a freeze of the Start button was possible when a wrong Window Name was set
Added option to specify the Max value for a stripe, so the value shown does not need to be a percentage
Added 2 extra stripe possibilities, for RegKey 2 and RegKey 3 (so now 6 stripes possible)
Updated Russian translations, thanks to Vadim Bogaiskov
Note that people wanting to have a stripe for Battery Current, Battery Temperature or Battery Voltage, they can configure to log those values (see BattConfig Log) and configure RegKey1, RegKey2 and/or Regkey3 to point to the Log:
Fixed bug that Battery charge indicator was not shown when also other Battery items were shown
Fixed bug that if DetectBackground was enabled, the CPU was hogging after some time
Fixed bug that BattClock.log.txt was no longer made when debug was enabled
Added Font selection for installed fonts (Fontname, Bold/Regular)
Added possibility to specify a gradient color as background color (select top left and right bottom background color, vertical gradient)
Color picker now makes a screen capture of the upper part, so you can better select the matching taskbar colors (e.g. for gradient colors)
Added customized OpenFileDialog, so Background images can be selected in all directories, including Windows
Changed problem that right to left languages like Hebrew text is no longer occupied by +/- buttons
Updated Hebrew translations, thanks to Som30ne
Added Greek translations, thanks to padvou
Changed default colors for low, medium, high into red, yellow, green
Added 4 BattClock stripes, per BattClock stripe the following can be configured:
Stripe can indicate Battery%, Free Memory%, CPU% or Registry Key 1 (default Phone signal strength)
the length of the stripe indicates the percentage left
Background color
3 configurable stripe colors dependent on the thresholds.
3 different thresholds (low, medium, high)
X, Y, Width and Height can be configured
Per 10% a few pixels are not drawn, so you have a good feeling of the percentage left.
Option to draw a solid line
Added experimental possibility:
To subclass other windows than taskbar window, so you can put the BattClock items e.g. on your home screen instead of the taskbar.
Note that the Window Name DesktopExplorerWindow is on my Touch Diamond the Home screen (works in Windows Mobile standard Today screen and Touch Flo 3D)
19-4-2010 Version 2.0.1
Fixed bug that daylight saving time was not handled correctly in new DateTime format strings
Made workaround for wcsftime, so the Day and Month names are using the default localization strings
Added Hebrew translations, thanks to Som30ne
Added Polish translations, thanks to pupakota alias nothin
Updated Russian translations, thanks to Vadim Bogaiskov
16-4-2010 Version 2.0
Visual feedback if a button is pressed
Added option to show Battery Voltage
Added option to show date/time in a specified format, including week number, month name, day name, seconds, PM/AM (3 separate free formats configurable)
Added option to show a registry key (3 registry keys configurable), default phone strength, missed call count and unread SMS
Added option to automatic detect taskbar background color changes and take over the background color of a configurable pixel location
Removed limitation that free memory and free memory MB could not be shown at the same time
Possibility to configure the number of seconds before the battery is polled (default 60 seconds)
Update values at power on/resume immediately
Added option to show Battery Current with forced readout (not using cached batterydriver values, but still dependent on battery driver)
Possibility to configure 6 info items for a BattClock area (e.g. horizontal or for circular display, see below)
Possibility to configure 6 fontsizes for above
Possibility to configure 6 colors (one color per info item)
Possibility to configure circular changing the last info item (e.g. showing items 2 till 6 for some time in a circular fashion in row 2)
Possibility to configure 6 items to log to a registry or log to file (BattClock.csv)
Refactored code, so the BattClock size and performance is on par with previous version, despite the new features introduced
Moved BattClock settings to registry key HKCU\Software\ZuinigeRijder\BattClock so BattClock can be used in combination with TouchLockPro
Renamed registry keys, so they are better grouped together for people editing via registry.
Added current CPU to registry key HKCU\Software\ZuinigeRijder\Status\CPU, request from howdykeith, so you can e.g. add mortscript actions to it.
Added current FreeMemory to registry key HKCU\Software\ZuinigeRijder\Status\FreeMemory, so you can e.g. add mortscript actions to it when memory becomes low
Added current Battery % to registry key HKCU\Software\ZuinigeRijder\Status\Battery, so you can e.g. add mortscript actions to it when battery becomes low
Solved bug that more than 1 character could not be displayed in Separators/Indicator strings (mixed up char* and WCHAR*)
15-1-2010 Version 1.5
Note that some registry settings have been changed into new ones for version 1.5, because of greater flexibility and easier configuration.
Some small adaptions to save a very small amount of battery (use resources as efficient as possible), probably you cannot measure it
Do not update clock and battery content with screen off and when no power plugged in (the latter because you can still use it with MyMobiler with screen off and power on)
Do not get the latest information from the battery device driver, but use cached information that may be out-of-date by several seconds.
When an PBT_POWERINFOCHANGE battery percentage update is notified, also reset the polling time to 3 minutes, to avoid getting extra battery info
Removed settings ShowTime, ShowBattery, DateDDMM, DateMMDD, Clock12, and UseLeadingZeros (replaced by BattClockInfo1, BattClockInfo2 and BattClockInfo3)
10-1-2010 Version 1.4
Solved problem that battery charging indicator was not switched till next minute
Solved problem that battery percentage was not switched from standby (-1%) to the actual battery percentage till next minute
8-1-2010 Version 1.3
Wait 10 seconds before creating BattClock to avoid boot problems