UPSmon Ver 1.0 and Ver 2.0
Although I was a Post Sales engineer at the time, I developed
a software product with supporting hardware and ran it's
production, marketing and sales almost like a small business - I
named and marketed the product independently of the company I
worked for, in order that it could be resold by third parties and
actually this proved successful and even continued after my
employer ceased to exist - The product was UPSmon and this is its
story...
UPSmon, from "UPS
monitor" was used to check the status of a UPS (Uninterriptable
Power Supply), which provide emergency mains power from a battery
backup for computer systems
I wrote version 1.0 of UPSmon around 1987 to cure a common problem
for our customers running Unix systems, where their UPS would keep
their computer running in a power failure but not once the battery
had run out of power
This would happen sometimes without them knowing that a power
failure had happened and would result in possible file system
corruption and data loss
Click on the images on the right to see the
UPSmon V1.0 sales glossy
Click on the left to see UPSmon V1.0 source code in C langauage
The program is invoked in background, and so runs as a Unix daemon,
which sends out a small packet of serial data on the chosen RS232
port, which is either connected to contacts available on the UPS
which close on power failure, or the hardware unit, as shown in the
glossy above, which I had manufactured to provide contacts for this
purpose
The image on the right is the trace artwork for the PCB in the
hardware unit, which supported relays to allow connection of two
computers, each with LED indicators for data transmission on the
front panel, and also allowed connection of 240 volt alarm beacons
for power failure indication
Click for full image
Here are front and rear views of the UPSmon hardware unit
I had the logo below designed by a graphics company. This is the
original proof work.
The letter and invoice on the left are from the solicitor who
advised me on the legal aspects of selling the software
It is interesting to see the comments on intellectual property and
on licencing for the product, to ensure that customers purchased a
licenced copy for each of their machines and didn't just copy and
run the software on multiple platforms
I used the example that Pinsent & Co provided
to me for a "shrink wrap" licence, to produce the licence
documentation on the right that was shipped with the software
media for each sale
Click for the full document
As the sales figures on the left show, UPSmon V1.0 proved quite a
popular product, with approximately £9,000 reveue in 1990, £14,500
in 1991 and £18,500 in 1992 (total £42,000 over 3 years)
For a product priced at £225 for software only and £380 for software
& hardware, this equates to something between 110 and 185 units
shipped
These were the days before Powerpoint slides, of course, but I
performed much more in a PreSales and Sales role in meetings with
prospective UPSmon resellers and used these documents to explain the
details of the product and its history, pricing, discount etc.
As the Product History on the right shows, 1992 was the year that I
had finalised the coding for UPSmon V2.0, which included software
modelling of the UPS battery charge/discharge data
UPSmon V2.0, or UPSmonII as I described it in the
documentation (and how the daemons were easily distinguishable) used
exactly the same check for return of the serial data packet via the
UPS contacts, or using the same hardware box
Click on the images on the left to see the UPSmon V2.0 sales glossy
The Sales Strategy document on the right (click
for the full document) shows my approach in driving sales for the
new V2.0 product into new customers and as an upgrade to V1.0
users
V2.0 was pitched at a price higher per unit than V1.0 - approx 30%
higher for SW Only versions and 18% higher for SW & HW
versions (HW cost of goods remained the same) - all upgrades were
SW Only, of course, and sold for the price difference (the only
cost being the tape or floppy SW media)
The major UPSmon reseller, a UPS reseller which sold SW Only UPSmon
for use with contacts within their UPS units, won business with some
quite high profile end users, such as Royal Mail and Royal Navy -
although only low in volume, the 45% discount afforded to them,
allowed them to make a healthy markup on the V2.0 RRP at £295 per
unit
The free stickers are shown on the left (click to enlarge)
The free porting to new platforms was carried out by "yours truly"
The free phone support was also provided by me - I already worked in
Unix Tech Support for the company and took all the calls from
dealers (direct support from the coder and designer!)
I also wrote the Informix database to generate and assign licence
numbers
I did spend company time writing the V1.0 and V2.0 code, of course,
and the second version required deeper coding and background work on
the battery charging aspects - V2.0 sales and upgrades went on to
recoup this cost and more but I don't have accurate figures on this
As the page from the UPSmonII User Manual (click below left for the
full document) shows, battery charge curves are non-linear and the
greater the amount of charge stored, the longer the remaning amount
of charge will take to store
I actaully spent quite some time measuring the timing of this charge
rate, from various levels of discharge across a number of
manufacturers UPS models and built and an average model for recharge
times, with a safety overhead, into the UPSmon V2.0 code
Battery charge data was written into the /etc/upsmonII.data file
every 3 seconds as shown below, which was obviously a non-volatile
store and would allow the system to read the previous UPS battery
charge level on a system boot (e.g. 100% for a reboot, 0% for
restart after autoshutdown at the end of battery autonomy)
The output on the right is actually from the "ups data" command,
"ups" being a shell script which started/stopped/restarted the
upsmonII daemon, interrogated and displayed the /etc/upsmonII.data
file and also the /etc/upslog file, an example of which is shown
below on the right
The cable below is an example of the one that was shipped with the
HW and the silver cable cover with an LED is what I used during
porting sessions for SW Only UPSmon, so that I could see the flash
of transmitted data and confirm operation - the developer had
written good error reporting into the code though ;) and error
numbers were reported by most Unix flavours and platform vendors for
comms error and port open error
The Software Installation document on the right is an example of
what was included with the media and licence agreement - it also
included cable pin-outs for SW & HW and SW Only versions
The contents of the shipping package for the full harware UPSmon
version are shown below left and an example of an external
temperature sensor and remote alaem beacon on the right, which I
used for demos
Below are the Unix manual pages for upsmonII (left), the
compiled and executable monitor daemon program and ups (right), the supporting
control shell script
and here below are the matrix print-outs of the full C language source code for upsmonII
and shell script code for
ups