Programmers: Make Things Easy and Fast for Your Users

I’ve been writing software for over 50 years and have evolved a set of rules for designing user interfaces that are easy to use and which allow users to get their work done as quickly as possible. These rules apply equally to desktop applications, apps, and web pages.

I don’t know what they’re teaching in user-interface classes these days, but software today is, as a rule, dreadful. It is extremely painful for me to use since I see glaring design failures at almost every step. Clearly, the rules people are learning are inadequate.

Basically, all my rules are intended to reduce the number of steps needed to accomplish something. That basic principle is at the root of good user-interface design. I think that the focus these days is on appearance, but appearance should be secondary to function, which is not to imply that you have to sacrifice aesthetics to achieve ideal functionality.

Here are some basic rules:

Eliminate Unnecessary Steps

Every step in a multi-step process should be examined to see if it is absolutely necessary.

Make use of defaults and persistent settings to eliminate steps related to options. Often an operation that needs to be repeated uses data from the previous operation. Make it easy, or at best unnecessary, to enter duplicate information. For example, use something like Ctrl-D to copy the previously-entered value from a field, or default to the previous value.

Very often a multi-step process can be reduced to one or two steps by careful design. This can greatly increase the speed at which users can get their work done, and make them much happier.

Be Judicious in the Use of Security

Most programs and websites are accessed from insecure computers, and don’t involve information that has huge consequences if access to it is compromised. Also, many people use password managers which automate logins for anyone using the computer.

So probably most users just find it annoying (and completely unnecessary) to have to log in each time. Avoid the need to log in, or have an option to stay logged in. Consider Amazon, which has moderate consequences if an unauthorized user gains access — they keep you logged in pretty much forever. They want it to be easy to buy things, and logging in makes it less easy.

Eliminate Most “Are-You-Sure” Dialogs

Few things are more annoying than being asked “are you sure?” after you’ve already indicated that you want to do something. Some software does this for almost everything you do, and in most cases it is completely unnecessary.

The key question to ask is: what are the consequences of making a mistake here? If a mistake will cause significant work to be lost, yes you should ask. But if the cost of recovering from a mistake is low, you don’t need to ask. Compare that cost with the cost of having to answer “yes” in the vast majority of cases.

If you still think you should ask, see if other design changes could eliminate or reduce the need for the dialog. For example, a “restore” or “undo” option would do the trick. Often the best solution is a multi-step “undo” function that will undo everything except exiting without saving, and even that can be overcome by automatically saving the changed data in a temporary file before exiting without saving.

Make the Most Common Next Step Easiest to Do

Most programs are used in predictable ways. Frequently there are sequences of steps that repeat often. Make the path through that sequence as straightforward as possible.

Make the thing most likely to be done next the easiest to do. Minimize the movement necessary to accomplish it, for example by putting targets closer together. Don’t have targets that are inactive displayed.

The classic example of failing to follow this rule is websites that have a search box, like the Amazon site. The first thing most users want to do is type something in the search box. But first the user has to click in the search box to get the cursor there. If the site came up with the cursor already there, the user could just start typing. There’s no reason I know of why that isn’t done; it doesn’t mean the user has to do more to click on something else if he doesn’t want to search. Worse, many people (like me) assume that they can just start typing, and they type a bunch of stuff before realizing that nothing is being entered.

So, if a screen comes up with a box to type into, and putting the focus on that box doesn’t add extra steps to other things, by all means put the focus there. The only exception I can think of is when the most likely next step is to scroll the page, in which case the focus should stay on the page.

Minimize the Use of Icons

The most recognizable icons are words. Use them. How many times do you have to move your cursor over a series of icons to see the text that pops up? Eliminate that annoyance by just using words instead. People don’t remember any but the most recognizable and frequently-used icons, so they just slow down their work and increase errors.

Yes words often use more space on the screen. Good design will compensate, and will reduce clutter. It also helps to only display functions that are relevant to the current state.

Choose Words Very Carefully

It is extraordinarily important that you use the clearest wording possible. This is especially critical when naming functions, where names need to be both clear and short.

In the 70s and 80s I was the lead designer of a CAD system that ended up being the main product of a 100-person company and which generated tens of millions in sales. The tag line for it in ads was “It’s Easy!”, and it was. When we named things for that product, there was often a meeting, sometimes a long one, just to come up with be best word to describe a single function.

Messages, especially error messages, need also to be very carefully worded. When you are composing a message, think carefully about it and about how others might interpret it.

Button wording is also important. Stick with conventional words like “OK” and “Continue” when appropriate. Be very careful to avoid words with ambiguous meanings. When a button does something, label the button with what it does.

Program Errors

It seems that the convention for finding program errors says is to write programs full of “debug” statements then to turn off the debug checking for release builds. The result is that internal errors that occur in programs will cause crashes or malfunctions when something goes wrong. I’m a strong believer in having release builds contain extensive internal checking and that even release builds report such errors when they occur.

I realize that it is politically bad for programs to report internal errors. My response is that doing so makes it possible (and easy) to identify and fix bugs. Overall, users will see less bad behavior from programs that report errors than from programs that don’t, since bugs will get identified and fixed early.

There are many ways to record and report internal errors. The simplest of course is to just display a message and exit. With a little more work, error details can be recorded in the Windows application log. What is essential is to see that errors that occur get reported to the developers. Ideal is an email or other message to the developer reporting the error.

It is also very important to report the error in an identifiable way. Reports should identify the error explicitly, and include a call stack. The way I do it is to have an error reporting function that does this, and which terminates the program. Terminating the program is essential to motivate users to report errors and developers to fix them. A call such as “gterm(“func3″,123)” produces a message like:

Terminal error FUNC3 123

Which is generally all a developer needs to identify where and why the error occurred as well as what the user had done to cause it to occur.

If you write highly structured code this may not be sufficient, in which case you might want to add information about classes and such to the call stack information. Also, if you make extensive use of third-party libraries, you may need to find ways to deal with their opaque nature, perhaps by writing wrappers for the library functions.

You can use a similar technique to report unhandled exceptions.

Mailing & Shipping 101: Packing Items Safely and Considerately

This article is about two things: how to safely and efficiently pack items sold on eBay (or elsewhere), and how to pack things with some consideration of what the recipient will have to do to get the item out of the packaging.

I got motivated to write this because I’m good at packing things (I’ve sold many thousands of things on eBay and Amazon, including lots of big and heavy things like printers, and have yet to have a complaint about shipping damage), and because I’m sick of receiving things I’ve ordered on eBay wrapped in way too much packaging and tape making them nearly impossible to remove from the package.

I will try to help you answer two questions:

  1. Did I pack my item so it will arrive safely?
  2. Did I make it as easy as possible for the recipient to get the item out of the package?

Both are important!

There are several links to Amazon in this article. I don’t get referral fees for them.

Do You Need a Box At All?

You may have noticed that Amazon uses fewer and fewer boxes for their shipments. They are realizing that poly bags and poly bubble bags provide enough protection for many items, are cheaper, and are much easier to pack and for the recipient to open.

I sell a lot of small stuff, and use #0 poly bubble bags (10″ x 7″) for most of my shipments. They are well under 20¢ in quantity (buy them on eBay), and I can pack, label, and seal them in seconds. For bigger things I use #2, #4, and #6 bubble bags.

For larger items, things already in (small) boxes, and clothing, poly bags (non-bubble) are a good alternative. They are quite strong and are also easy to pack, and they take up little space so you can stock a range of sizes in a small space. I use them for things that are too big for the bubble bags I stock. They’re also cheap, at least in smaller sizes.

For shipping things that shouldn’t get bent, like printed material or fragile things like memory sticks, I use corrugated pads (flat sheets of cardboard) as reinforcement. You can cut them from boxes you don’t need, but it’s easier and better to buy them pre-cut. Again eBay is a good source. Look for “32 ECT” to get heavier-duty ones, and avoid anything labeled “EcoSwift” as they are very flimsy and lightweight. Cut pads as required to fit the bubble bag you’re using, put the item being shipped in a ziplock bag, and tape it to the cardboard, or use rubber bands to hold it in place. It is often a good idea to use two pads taped together with the item sandwiched between them.

I buy 8.5″ x 11″ pads, and cut most of them in half. If you don’t have a paper cutter to do this, buy one. They are an essential tool. Half of an 8.5″ x 11″ pad (5.5″ x 8.5″) fits perfectly in a #0 bubble bag. At least 75% of what I sell is packed this way. It’s very good protection, and very easy to open.

Using Boxes
Some of my saved boxed. The stickers have inventory numbers and I have a spreadsheet that says what size they are and where they are stored.

You’ll need to use corrugated cartons (boxes) for big, heavy things, and for things that might punch through a bubble bag. I save old boxes, have hundreds of them, and have a complicated system to inventory them so I can choose the right size box for a shipment and then find it. I will write up my system some day and post it here, even though it will only be of interest to the truly obsessive.

USPS boxes and padded mailers are great, and are free. Don’t misuse them! I worry that so many people are misusing such packaging supplies that the USPS will have to start charging for them, or discontinue them entirely. When I get a package from someone where there is egregious misuse of free USPS supplies (such as using copious padded mailers instead of bubble wrap for padding), I report them to the USPS, and you should too. I got one big box a while back that was pieced together from a number of USPS boxes, had literally dozens of padded mailers inside, and to add insult to injury, was shipped by FedEx Ground!

If you sell the same items over and over, consider buying boxes the right size for shipping them. Again, eBay is a good source. For smaller things, look at boxes called “mailers” which are ones that fold up from a flat sheet of cardboard and are often white. They’re nicer, and sometimes cheaper, than the typical boxes with flaps.

If you ship heavy things like printers, buy some 1″ white unfaced Styrofoam sheets. You can get them at lumber yards, and a 2′ x 8′ sheet should cost about $5. Neither Lowes nor Home Depot has them. There are other types of insulation that are much more expensive, so be careful, and shop around if necessary. I buy them 10 at a time.

Cut the 1″ styrofoam with a serrated knife, or if you have one, a table saw. Cut it 1/4″ or 1/2″ shorter than you think you’ll need. Use one or two layers on all sides of the box. Start by putting one or two layers on the bottom, then do the sides, then the top. If the item you’re shipping is not square-sided, fill the extra space with packing material like air pillows or packing peanuts. If you do it right you’ll end up with a nice, solid, strong package.

When taping boxes, use the “H” pattern. One long strip down the middle of the flaps and extending halfway or more down the sides of the box, then short strips along the sides of the flaps. Make the short strips short enough that there is a little space at the edges to get a knife in. Tape both the top and bottom of the box the same way.

If you’re packing something heavy, or just need extra strength, wrap strapping tape around the package in several places.

Supplies You’ll Need

There are a few things that make packing stuff a lot easier. First, get a good tape dispenser and good-quality packing tape. Next, buy a strapping-tape dispenser and a few rolls of strapping tape. Also very handy is a stapler for corrugated boxes; I use an Arrow P-35 stapler with 3/8″ staples.

Good-quality packing tape is hard to find. The cheap stuff is mostly no good, and the brand-name stuff is way too expensive. I just buy cheap stuff with decent reviews from Amazon and cross my fingers. The latest batch I bought turned out to be very good. It was a brand called “Jarlink” and was $27 for 12 rolls. Go to

There are several different kinds of packing tape dispensers. The kind I like are the simplest ones; if it has a handle, it’s too complicated. Go to

I’ve had good luck with cheap strapping tape. I get this stuff for about $6/roll: And for strapping-tape dispensers try which is a nice steel one for about $13.

There are several models of the T-35 stapler. They don’t make the one I use any more but the best comparable one is It has a spear point which makes it good for stapling closed box flaps. While not the preferred way to close boxes, there are times when it’s handy.

Buy or Recycle?

Some things, like tape, sheets of styrofoam, or bubble bags, you’ll have to buy. It also makes sense to buy boxes if you need lots of a specific size. Most of the rest of what you’ll need for packing things will come as the packaging you’ll get from others, if you make a point to save it. If you sell stuff, it stands to reason that you buy stuff, plus most of us get lots of what we need from places like Amazon, and it all comes in packages containing lots of packing material.

Packing peanuts
Packing paper and air pillows

I buy large plastic trash bags and use them to store packing material. I actually end up saving more packing material than I need. When I get too many bags I’ll take a few to my local pack-and-ship shop, which they appreciate, and reuse.

Making Things Easy for the Recipient

Note the word “considerately” in the title of this post. This refers to making things easy for the recipient of the package. Too many things I buy on eBay arrive encased in armor and take a lot of time-consuming work to open. Sometimes it’s even hard to get the item out of the packaging without damaging it. You don’t need to mummify the internal packing material (or the outer box) with packing tape in order for it to arrive safely. Use just enough tape to hold things together securely.

If you wrap an item in bubble wrap, often you don’t need to tape it in place at all, or it can be secured with a single small tab of tape. If it’s pretty snug in the package, the item will stay secure in the bubble wrap without any tape. A very good alternative is to use rubber bands.

Tape the box flaps using the “H” pattern described above. You don’t need to overwrap the entire package in tape.

If you use Priority Mail packaging that has self-seal strips, the strips are plenty strong. You don’t need additional tape. The only exceptions are when the box is old and the self-stick glue has dried out, if you’re jamming something big in the box (yes we all do it) and the flaps don’t quite close securely, or if you’re shipping something extremely heavy.

For most all uses of packing tape other than closing boxes, such as taping things closed on printers or securing bubble wrap around an item, be sure to fold back a corner of the tape to give the purchaser something to grab. It’s really difficult to remove the tape otherwise, and many people don’t have fingernails suitable for the task.

If you use styrofoam sheets or packing peanuts (or anything else that’s messy), be sure to put the item you’re shipping in a plastic bag first. Don’t make your recipient have to spend a lot of time picking bits of stuff off of or out of their item.

Sharp, Pointy, or Heavy Things

It is necessary to use extra protection with things that could punch through their container. You need to get creative. Stapled-together cardboard sheets, or wood of various sizes, can be useful in crafting a package that will ship a heavy item safely. Crumpled brown-paper sheets also provide a surprising amount of security.

For example I sell steel rock chisels that are an inch in diameter, 18 inches long, with a sharp point on one end. They are designed to punch through concrete, so a box doesn’t have a chance. I put them between two sheets of cardboard and staple the cardboard tightly around the item. I do this twice for extra protection. Then I put it in a strong box with lots of crumpled paper to hold it in place.

Another example of an item which requires extra protection is a heavy electric motor. It will have shafts sticking out of one or both ends. I use two methods for packing these. I cut square pieces of styrofoam the size of the end(s) of the box, then make holes in them for the shaft. It also helps to put pieces of thin plywood or masonite to reinforce the sides of the box where the shafts might punch through.

If you use wood when packing something, remember that it needs to be inside a box to be shipped by standard carriers. You rarely need a full-fledged crate. For example, a wood frame around something with fragile edges provides lots of protection, or a sheet of thin wood covering one side of the inside of a box may be all you need to keep something sharp or heavy from punching through.

Styrofoam sheets, as noted earlier, are very good for packing large or heavy things. If one or two layers are places on all sides of a box, they will stiffen it up to make a surprisingly solid package. For square-sided things like computers, that’s pretty much all you need. For odd-shaped items, it makes a solid container in which you can put your item surrounded by air pillows. If you use just the right number of them, your item will be secure, and the box will close firmly.


Shipping liquids are a special case. Always include the item in a 4-mil ziplock poly bag that is securely sealed. If you’re shipping paint cans, get some of those spring-steel lid retainer clips and use 3 or 4 on each lid before putting the can in your ziplock bag. For screw-top bottles or cans, be sure the top is screwed on tightly. Some shippers use tape to secure the top; I don’t think that is necessary. But don’t use tape to seal a cap that is likely to leak; use a better bottle.

I don’t ship bottles or cans in bubble bags unless they are very small, like 2 oz. Bigger bottles or cans should go in a box. Mailers are very good for this. I ship a lot of 16-oz PET bottles, and have bought mailers sized for one or two bottles. Three or more go in a Regional Rate box.

Did I Pack My Item Well Enough?

For items in bubble bags, there isn’t a lot to worry about. The corners of the bubble bag will protect the corners of what you are shipping, even for things like books, provided that you didn’t squeeze the item into too small of a bag. The only things to worry about are things that might be damaged by bending. Postal workers may try to fold the package to fit it in a mailbox, but they won’t if it is stiffened by cardboard.

For items in boxes, ask yourself if it’s packed well enough to be dropped from waist high, or pushed off the edge of a desk. If the answer is no, you need to pack it better — put your box in a bigger box and add more packing material. If the answer is yes, then actually drop it from waist high. If you’re scared to, your answer should have been “no”.

Beware of caution labels on boxes, like “Fragile” or “This End Up”. If you think you need to use a label like that, you probably didn’t pack your item well enough. Some people say “Fragile” means “Give it an extra kick” to postal workers, and it’s probably true for some of them. The only extra labels I use are contents warning labels when required by law, and “Do Not Bend”, “Top Load Only” (which means do not pile heavy things on top), and “Heavy” for items that are heavier than one would expect. Yo can get “Heavy” stickers from the USPS for free — I cut off the “35 lbs and over” part if I’m using it on a smaller but still heavy box that is less than 35 lbs.

Shipping Methods

This section is a quick rundown of shipping services and vendors. I have a more complete article on this topic coming, and I’ll put a link to it here when it’s done.

I’ve found that FedEx is generally easier on shipments than UPS. But UPS is frequently cheaper, sometimes by a lot. The two services (and USPS) have different ways of calculating prices, some going more by weight, and others more by size. Be sure to compare all methods.

USPS services to be aware of are the various Flat Rate packages and rates. Regional Rate boxes are great, and I’ll use them even when the standard Priority Mail rate is a little less, because I get a nice free box. Sometimes the various Flat Rate boxes are handy and can save money. One little-known rate class is Priority Mail Cubic, which charges for smaller packages and bags by size rather than weight. It’s not widely available (eBay and don’t offer it, nor does USPS Click-and-Ship). Pirate Ship does offer it, along with discounted UPS rates, and a calculator that helps you choose the cheapest shipping method.

I use Shipstation for most of my eBay sales ($9.95/month which includes a free account — a great deal), eBay shipping for FedEx, for non-eBay shipping, and Pirate Ship when I think Cubic might be cheaper.

Some Examples

Flat Spring Steel:

Packing flat spring steel safely

These are 7″ pieces of slightly-curved spring steel. Obviously they are hard to pack so that they won’t punch through the package. My solution is to put them on a 5.5″ x 8.5″ cardboard pad with the curve up, and staple a small piece of cardboard onto the pad to hold them in place. The resulting package is simple to prepare, safe, easy to ship, and convenient for the recipient. I’ve gotten many positive feedback comments about this packaging.

The package ready to seal and ship

This is how the resulting package fits in a #0 bubble bag. The bag will hold one or two items. For three or more I use a #2 bubble bag and use rubber bands to hold them together.

Easy to pack, easy to open, and secure.

3.5″ Floppy Drives and Hard Drives

Ready to pack

I like to use Small Flat Rate Priority Mail boxes for shipping drives. Most drives are over a pound so First Class is out, but I use them even for drives under a pound because they are easy and safe. You could sometimes save on postage by using a bubble bag or a non-USPS box with Cubic or standard Priority Mail, but you wouldn’t save much, and for me it’s not worth the bother. Also if I shipped many drives I would get fold-up mailers the right size.

I wrap the drive in bubble wrap (no tape) and stuff it in the box along with the packing slip. Note that I do use small strips of tape on the sides of the box; probably not necessary but they make a more secure package, and don’t need to be cut or removed to open it.

Ready to seal

Everything stuffed in the box. All that is left to do is to peel the tape off the adhesive strip, close the box by pressing the adhesive strip well, and apply the label.

The drives fit somewhat loosely in the box, which is fine. Things like this don’t have to be jam-packed full of packing material. It might slide around a bit, but it’s well padded so a little movement in the box doesn’t matter.

Engineering Malpractice: Ryobi Power Scrubber

P4500 Power Scrubber

I bought one of these on eBay a few weeks ago, to use to clean my aluminum siding in preparation for painting. I paid $60. I got a chance to try it out a few days ago to clean a friend’s deck. It worked quite well for that, for maybe ten minutes. Then it slowed down and stopped, acting like it had run out of battery. I put in a fresh battery, but then when I pressed the switch it just twitched. A second battery did the same.

When I got home I contacted the eBay seller. I asked for a 50% refund and to keep the tool, hoping I could take it apart and fix it. The seller agreed, and sent me $35. I started taking it apart.


Taking the power head apart was fairly straightforward, once you realize that the screw holding the triangular drive has a left-hand thread. Once the cover is off, you end up with a motor with a gearbox/output shaft assembly attached. It separates by turning a lever.

Once you get the gearbox assembly out, you need to remove two layers of planetary gears (keep them organized so you can put them back in the right place). What’s left is the output shaft and bearing in a plastic housing.

Here I got stuck. I couldn’t pound the shaft out, so I put it in a press. That broke the housing, changing the project from an attempted repair to an autopsy. It turns out that there is a snap ring holding it together, hidden behind a rubber seal. To take it apart, use a small hook to pull the seal out, then remove the snap ring. Here is the assembly:

Output shaft assembly

It became pretty clear that it was a bearing failure. There is a one-piece steel sleeve bearing running on a steel shaft with no lubrication. It is guaranteed to seize up within minutes. It is hard to believe that this design passed quality control and was released to manufacturing. Anyone with any experience working with machines would know that it would fail immediately.

If you look at the Home Depot site, you’ll see that about half the reviews describe a failure like this one. My guess is that the other half is people who haven’t used it enough to have it fail. By the way, Home Depot seems to now be blocking negative reviews for this product.

To verify that the steel sleeve bearing was what it appeared to be, I cut it in half with an angle grinder. Sure enough, it is one piece of steel. It is badly galled, with grooves worn in it:

Steel sleeve bearing

And here is the shaft which also has galling:

Output shaft

The shaft is 10mm in diameter, the bearing is 24mm in diameter (I couldn’t be sure about this because I measured it after cutting it — it might be 25mm). The bearing is 13.25mm thick.


I looked quickly for a sleeve or ball bearing that would exactly fit and didn’t find anything. There may be something out there, or a combination of a brass sleeve bearing and a steel sleeve that would work. You could also drill out the existing bearing to accommodate an available sleeve bearing.

If you can return it to Home Depot you should do that instead of fussing with it.

Brother ML500 Typewriter Repair and Battery Replacement

There is very little information on this electronic typewriter on the web. I’m selling one on eBay and wanted to check the battery (used for the word processing memory and probably for retaining settings). To do so I had to take the thing apart. Here is what I learned.

Opening up the Typewriter

It’s kind of hard to figure out how to get into the typewriter. The case splits in half horizontally and the top part comes off. Once the top part is removed the clear plastic cover is easily removed.

Start by removing two screws near the back.

The case comes off by popping clips starting at the front edge. This is easily started by hand, but there are two bigger clips in the middle of the sides that must be released with a flat tool, like a thin 6″ ruler. Here is the ruler stuck through a small slot at the bottom edge of the bottom half of the case. Insert the ruler under the bottom of the clip and twist and pry, and pop the top part off.

This is what the clip looks like after the top part of the case has been removed:

Once you get the two clips released, lift up the cover from the front and remove it. This is what you’ll see:

The keyboard assembly is held by four clips, two at the bottom edge and two on the lower side at the level of the Shift key:

Release the clips and rotate the bottom of the keyboard up. There are two narrow ribbon cables at the top edge (I didn’t figure out how to disconnect those) and a wide one at the left side which just pulls out of the connector:

Now you’ll see the main circuit board. It’s very 1990s. At the right side is the battery:

It is a 3V CR2354 battery which is soldered in using custom tabs spot-welded onto the battery.

The main circuit board can be unclipped by releasing several tabs. There is a locating pin at the lower left that needs to be cleared by maneuvering the board.

Testing and Replacing the Battery

You can measure the battery voltage with a meter by sliding one probe under the battery and touching the other to the top of the battery. Mine measured 3.17V, which is pretty good for a 20-year-old 3V battery, and I’m not going to try to replace it.

If yours is dead or you just want to install a fresh one, the first step is to unsolder the existing battery in three places. Remove the old battery.

You can’t get an exact replacement. One possibility is a Panasonic CR2354 battery with leads spot-welded on, but in a different configuration from the old battery. It might fit in the existing PC board holes, and is probably worth a try.

Another option is to get a battery holder and connect it up with short leads so it sits to the right of the PC board. I would get a CR2032 holder and use a CR2032 battery, which is also 3V and is readily available. You can also get a CR2354 holder and a bare CR2354 battery.

Be sure to get the polarity of the new battery right. Wrap the new battery and holder in tape or shrink tubing so it doesn’t short out on the metal bottom of the keyboard.

User’s Manual

You need the user’s manual to use any of the many fancy features of this typewriter. It’s about 120 pages. I found one on one of those manuals sites. It’s not a very good copy but here it is:

Adding Fonts in Ghostscript

I use a program that produces Postscript and allows use of non-standard Postscript fonts. I wanted to figure out how to get Ghostscript to load those fonts so I could produce a PDF file from the Postscript. Should be simple, eh? Well it took me a week of trolling message boards, studying documentation, and trying things before I figured out what was going on.

Part of the problem was that there are multiple versions of Ghostscript that work differently, and much of the “help” you find with a Google search applies to versions other than the one you are using. I am working with the latest version of Ghostscript (as of 2/9/21), version 9.53.3. If you are using an earlier version, upgrade. If you’re using Ghostscript with some other program that requires a certain early version of Ghostscript, I can’t help. Things have changed a lot with how fonts are loaded.

I’m using Windows 10. It probably works differently on other platforms.

Paths and Directories

There seem to be a lot of directories that Ghostscript looks at. You can see a list by typing “gs -h” (or whatever your Ghostscript executable is) at the command line. Ignore it — I don’t know what Ghostscript looks for in those directories, but it isn’t fonts.

The file

If you get deep into this, you’ll eventually come to the conclusion that the key to getting fonts working is the Fontmap file. There are lots of them — the one that’s supposedly used is Init\ Ignore it, and don’t change it. It won’t accomplish what you want, even if it seems like it should.

If you really want to try to use the Fontmap file, you’ll find that Ghostscript probably isn’t reading it. To get it to be read, use the

“-sFONTMAP#C:\Program Files\gs\gs9.53.3\Resource\Init\”

parameter. Use the quotes since there’s a space in the parameter. Use “#” instead of “=” because they say you should.

But take my advice and don’t.

The FONTPATH Parameter

The key to all this is the FONTPATH parameter. It specifies where Ghostscript should look for font files. Ghostscript doesn’t seem to read font files unless you specify this. Once you do, everything will start working.

I suggest that you put all your fonts, regardless of the type, in the Windows Fonts directory. Note that Ghostscript will use Truetype fonts, so all the fonts in the Fonts directory are available to you. But you can add PFB or other Postscript fonts to that directory — they won’t be available to Windows programs but if you have Postscript that references them, they will get used.

To specify the FONTPATH parameter, use the:


parameter. The quotes aren’t needed unless you use a path that has a space in it. The “=” is replaced with a “#” for some reason.

Font Names

Ghostscript uses the font names in the Postscript you are reading, and tries to match them with font names in the font directory specified in the FONTPATH directory. It doesn’t need the Fontmap file to do this.

Be careful about font files that have the same name. You might not get the font you want. This is particularly troublesome when the font you get has different font metrics than the one you want. I don’t know how Ghostscript decides which font to use if there is a name collision.


So the bottom line is: put all your fonts in the C:Windows\Fonts directory, and use the FONTPATH command line parameter to get Ghostscript to use it. That’s all there is to it.

I know very little about Ghostscript and there are probably others who could help make this article better. Please comment if you have any suggestions. But my purpose is to make it possible to get Ghostscript to load fonts without understanding too much, or being aware of the vast complexity of Ghostscript when it is not necessary to do so. Please keep this goal in mind when commenting.

Thank you!

Troubleshooting Zebra/Eltron Label Printers

This article describes some of the troubleshooting tips I’ve discovered for solving problems printing labels with Zebra Eltron label printers.

Power Supply Problems

Most of the label printers you get on eBay come without power supplies. However, other sellers have power supplies that are claimed to be for these printers available for $10 or so, and I’ve bought a lot of them. Everything has been fine until recently when I started having printers fail in a way that points to the power supply.

Some Background

The original OEM power supplies were big bricks rated at 14VAC and 4A. Much to my surprise the power supplies from eBay are rated at 20VDC at 3.25A. My guess is that the original power supplies feed AC to a rectifier directly, and feeding it DC gives the same result without the rectifier having to do anything.

There’s also the issue of 14V vs 20V. Maybe the 14VAC ends up closer to 20VDC after being rectified; I’m not an expert on electronics but 20VDC seems to work. Sort of.

I also don’t know how many amps a rectified 14VAC at 4A becomes when it gets converted to DC

I just ordered a new batch of power supplies and this time they were 20VDC at 2A. I sent them back.

The Failure Mode

At best the printers I sell with 3.25A supplies tend to print lines that cover the full width of the label somewhat washed out. I always thought it was caused by a weak power supply, but it was never bad enough that I was motivated to try to figure it out.

Now, I have several printers that with the 3.25A supplies will print an inch or so of the label then die. The way it dies is that the printer stops, the light on the button goes out, and it makes a strange “burp” noise. The light on the button then comes back on and the printer is back to normal. The light going out momentarily suggests strongly that the printer overtaxed its power supply. It gets about an inch of label printed before this happens.

Failed Label

Another clue: with the 2A supplies it gets a quarter of an inch of label printed before dying the same way. Less current, less label.

I’ve had the same results with several printers and several power supplies. Something is going on.


Inside the printer are two big capacitors, 22000 uF if that means anything to you. The printers are all getting to be 20 years old, so it’s possible that the capacitors are failing. Capacitors store electricity and could be doing two things inside the printer: smoothing out the rectified AC, and building up a reserve of power for doing things like printing wide black lines.

Next Steps

I’ve ordered a 4.5A 20VDC supply to see if it works better. I’ve also ordered a couple of new capacitors, and I’m hoping that they will make the problem go away.

Update 1: I got the new capacitors today, installed them, and the printer still failed the same way. So it isn’t the capacitors. Oh well, I had hoped that would explain things.

Update 2: I tried printing with a bigger (4.74A instead of 3.25A) and the problem went away. So it sounds like this is indeed a power supply problem. But with the “solution” given in the next section, you (and I) can manage just fine with the smaller power supplies.

The Solution

A little careful searching led me to the solution. If you crank the darkness up to the maximum in the printer driver this failure will happen. I had recently tried turning up the darkness. So I backed it off to 12 or so and the problem went away.

The Jaggies

There is a setting in the driver for this printer that controls dithering. This is one of several techniques used to compensate for the low resolution of the printers by smoothing out edges. It’s useful if you are trying to print photographs or low-resolution graphics, but it causes print quality problems when printing labels. Unfortunately the default setting in the driver is for dithering to be on.

It can sometimes be hard to recognize labels with the jaggies. Often the sense is just that things don’t look as good as they should, or that some labels look better than others. The problem is especially acute if you’re trying to print a scanned label. Here is a label, printed with software, that has the jaggies:

Label with jaggies

Look especially at the “XI” logo next to the return address. Once you start seeing the jaggies they are all over the place. Now compare the above label with this one, printed with dithering turned off:

Label with dithering turned off
Turning Off Dithering

If you think you have dithering turned on (it’s on by default) it’s easy to check the setting and change it. Get into Printer Preferences for the Zebra Eltron printer (there are many ways to do this, and they vary by which version of Windows you are using). There will be several tabs; pick the Graphics tab. Look for the Dithering section. One of the options will be selected; if the option None isn’t the one selected, select it. Then just pick OK and you’ll be done. Here’s a picture of the dithering settings:

Dithering setting turned off

Reloading Windows XP On Your Old Computer

This is a cautionary tale. Hopefully it will encourage you to not try to install a fresh copy of XP, or if you insist, it will give some hints which will make an impossible project a little less impossible.

So I got an old XP computer given to me and I wanted to sell it on eBay so I had to wipe the hard drive. It didn’t have an OS recovery partition so I just found an old XP CD and reloaded it. That’s where the fun began.

I expected XP to just load and work. But I forgot that back in the XP days you had to load drivers for your computer (or motherboard) and all installed cards, for anything important, like a network card, to work. And of course I didn’t have any of the necessary drivers.

It took two days to find, download, and install the drivers I needed. To download the chipset drivers I had to pry the heatsink off the motherboard chipset chip to read the number off it. (I found out they make thermal compound in cement form for gluing such heatsinks back on.) For other drivers I started with the hardware ID found in Device Manager’s properties and did some serious searching. It also turned out that the Internet Archive ( has a lot of the old driver CDs that came with old motherboards — you don’t need to find the exact same one, if you’re lucky one for the same chipset will work.

At this point it is a good idea to activate Windows. It seems that the online activating service run by Microsoft no longer works, but the phone activating service still does work. It’s a giant PITA but just do it. Eventually the phone activation service will stop as well and we’ll all be stuck. Microsoft originally promised that they would release a patch that would eliminate the need for activation in such a case but I’m not holding my breath.

With the network card driver installed and Windows activated, I was able to start looking for updates through Windows Update. But it wouldn’t work, and Internet Explorer wouldn’t load pretty much any website. I figured out that the encryption certificates loaded with XP were all out of date, and nowadays almost all websites are https, none of which would load without current certificates.

After some fruitless searches for sources of current root certificates, I decided to try to get Windows Update working. I needed to load all available updates anyhow, and Windows Update was where certificates used to come from. That led me to discover that Microsoft has turned off Windows Update for XP, as well as most (or all) other unsupported operating systems. Last time I tried this, years after XP support ended, it still worked. No more.

More searching led me to a website in Germany, The owner of this site has built a tool for updating Windows computers’ Microsoft software without a network connection. A side benefit of this website is that it has access to old updates for no-longer-supported software like XP. [I don’t know if he has copies of old updates or if he just knows a way to download them from somewhere on Microsoft’s website.] In any case the website will get you the updates you need.

From, you need to download an update-generating program, run it to generate a folder containing all the updates you want, move that folder to the computer you want to update, and run an included updating program. It sound involved and does take time, but it works. Follow these steps:

  1. On some other computer, download the update-generating program from There are many versions covering different ranges of software. For XP you want Version 9.1. It’s the last version that supports XP.
  2. Unzip the resulting file and run the program UpdateGenerator.exe. Start by selecting the Legacy Products tab. That will get you into the section for XP updates. It all looks pretty complicated but just pick what you think you need. I suggest selecting all the Internet Explorer and .NET stuff too.
  3. Select the output medium. I tried creating an ISO file first but it didn’t work. So I tried outputting to a USB drive and that did work. I used an 8GB drive and it almost filled it up.
  4. Click Start to generate the updates on the USB drive. It will take a while. I don’t remember if it asks questions during the process but you’ll figure it out.
  5. Move the USB drive to the computer you want to update.
  6. Run the UpdateInstaller.exe program from the USB drive. It will run a long time, it will ask questions, and it will request that you reboot several times.
  7. Keep running UpdateInstaller.exe until it gives an unambiguous message that it has concluded successfully. It takes three or four restarts to be finished.

Now you have a running and updated copy of Windows XP running on your machine. Make an image backup of it (I recommend the Image series from, since you don’t know how long the procedures described here will continue to work.

There is still a problem with encryption. It seems that modern websites, most all of which use HTTPS, require support for encryption standards that XP doesn’t have. There are a few old versions of browsers that do support modern encryption, and I suggest installing Opera 36. I tried to put the install file for it here but WordPress won’t let me upload EXE files, or at least I couldn’t figure out how to. Search for “Opera 36 XP” and you’ll find it.

Opera 36 will load most but not all websites; probably some websites use new features of HTML that the older Opera 36 doesn’t know about. So that (mostly) takes care of web browsing. But there are a lot of other programs that access the internet, and most of them won’t work.

One other consideration is that you won’t be able to get XP-compatible drivers for any modern hardware. One workaround is that XP has drivers for Postscript printers, and some modern printers, like Brother printers and I think some HP printers, will accept Postscript.

So the bottom line is that if you are trying to use your XP machine as a modern computer, it’s not going to work very well, or at all. However, if you’re trying to run an old program designed for XP, especially if it uses special hardware, then you might need to bite the bullet and install XP.

Antique Victorian Door Lockset Repair


I have an old house, built around 1888. It still has a lot of the original stuff and I try to preserve what I can. One thing I’ve been having trouble with is the door hardware, which is typically worn out or not working. There are expensive reproductions out there, but I’m cheap, and I like to keep what I can of the original stuff. I also like fixing things.

There are two problems I’ve found with old locksets: the cam is worn in the covers so the doorknob rattles, and the springs are usually broken or missing. I couldn’t find replacements for the cams, so I epoxied brass bushings on the wear surface and ground them down to fit. I also had trouble finding short lengths of suitable flat spring steel to replace broken springs, but decided to buy it in bulk and sell short lengths on eBay.

The lockset described in this post is from an exterior door so it’s bigger than the common ones on interior doors, but the repair technique should work for any similar lockset. Also it’s a surface mount lockset; presumably mortised-in ones have the same problems and these techniques will work.

Getting Started
What you will see when you open up a typical Victorian-vintage lockset. This is a “before” picture showing dirt, rust, and all.

Take the lockset off the door and take it apart. Clean and de-rust the parts. Soaking them in vinegar overnight will remove the rust. Remove all paint with paint remover or heat. Wire brush everything and paint the exterior of the lockset. I like satin black spray paint for this.

Now it’s time to figure out what you’ve got and what needs to be fixed. If parts are missing I can’t help; maybe you can find something on eBay. But probably everything will be there except the springs, and any springs that are still present will be brittle with age and may even break when you remove them.

Replacing Springs

Notice the two springs in the first picture. On the left side is some light-weight spring wire somebody added to try to get the latch part to work. It barely did anything. On the right is an original flat spring for the lock bolt part. It broke from negligible force when I removed it.

Another lockset that has been cleaned and painted, with the old broken springs replaced with my flat spring steel. It needs a little grease before final assembly.

I found flat spring steel in bulk and am selling short lengths of it on eBay in various widths and thicknesses. The flat spring steel bends easily and can be cut with an angle grinder or compound diagonal cutters which you can find on Amazon for around $15.

Don’t worry about matching the width exactly — just get reasonably close and you’ll be fine. Also the new spring steel is much higher quality and much stronger than the old stuff so you are replacing, so you’ll be using thinner springs to get the same effect. I suggest using 0.028″ or 0.025″ thickness for door latches, depending on the width.

I’m selling short pieces of the spring steel on eBay cheaply; it’s enough to do several locks. A link to my eBay listing can be found at the end of this article.

Cam Bushings
Cam showing wear in the lockset cover. Both sides are worn like this.

Dealing with worn cams turned out to be a thornier problem. My cam was worn out on the bearing surfaces in the lockset covers, which made the doorknob rattle annoyingly. The solution I came up with was to fit brass bushings over the worn ends of the cam, epoxy them in place, and grind them down so they just fit in the holes in the lockset covers. It’s a little crude but it works, doesn’t show, and will probably last a few more decades.

You may find that the “wings” that do the camming are worn or broken. This particular cam was pretty badly worn but it still worked. If your cam is unusable you’re probably out of luck. If you know a source for cams or have figured out a way to repair them, please let me know.

Cam showing wear of the bearing surface.

I found brass bushings with an ID smaller than the work cam, an OD larger than the holes in the covers, and sufficiently thick. Again, I’m selling the bushings on eBay at a reasonable price, and a link to the listing can be found below..

Bushings as purchased.
Bushings after filing ID to fit.

I found that a round file works well to open up the ID, but you might find a Dremel tool with a suitable attachment (like a sanding drum or a large-diameter round rasp) may work well too. Keep filing until the bushing fits over the cam. It doesn’t have to be perfect. In my case it only took a couple of minutes.

Filed bushing fitted to cam. It’s not perfect but will work fine.

Repeat for the other end of the cam. The bushings will be different sizes so don’t mix them up. Once you have both bushings fitted, glue them in place with good epoxy.

Bushings epoxied in place.

Once the epoxy has cured, start fitting the cam bushings into the covers. I found that a Dremel tool makes short work of this. You can grind down the bushing, or open up the hole in the cover (or both). If your cover has sufficient “meat”, you might want to just drill out the holes in the cover to match the OD of the bushings, which starts out as a fractional size. Fitting the bushings into the covers takes a bit more time, but you should be able to get it done in fifteen minutes or so.

Cam showing bushing after filing OD down to fit.
Finishing Up
Lockset with new bushings and spring wire, ready for some grease before closing it up.

Everything should fit together nicely at this point. Put a little grease on the wear surfaces, put it together, and screw the cover on. You’ll have a lockset that works like new.

Replacing the Spindles

When installing the doorknobs, you might want to replace the spindles with threaded ones (you’ll need new doorknobs too). Threaded spindles allow for finer adjustment than the old-style threaded holes in the spindle. This in turn lets you eliminate some more slop in the doorknob assembly.

Links to My eBay Listings

Get a Really Cheap VoIP Replacement for your Landline

I’ve been doing a fair amount of VoIP (Voice over Internet Protocol] work and have learned a lot about replacing both small business and home phone lines with internet-based VoIP service.  I’ve found reasonably-priced products and services, and in this post (and hopefully others)  I’ll share my experience with the options for replacing one or two existing phone lines with VoIP service.

VoIP service is ready for prime time.  It’s crystal clear, and rock-solid reliable.  Even if you have an old-style copper phone line, probably most of your calls are going by VoIP already.  If you have landline service from your cable company, that’s VoIP.

There are a number of existing VoIP services that sell you the hardware and the service all at once, companies like MagicJack, Vonage, and Ooma.  This post is about buying your own hardware and subscribing to a VoIP provider, which can be a much cheaper way to go.

It will cost you well under $50 to get started, and the service will cost about $4 a month per line, plus calls, which typically cost a penny or two a minute.  You pay for all calls: incoming, outgoing, and even toll-free.  But it doesn’t add up very fast, and there are inexpensive unlimited plans available.

Start out with a pay-as-you-go plan and see how much you use, then switch if it makes sense.  It probably won’t.

You can probably keep your existing number.  We’ll go into the details, and how to find out, a bit later.

VoIP is insanely complicated.  Luckily you can get by knowing very little, but I’ll (eventually) be providing links to other articles that will help you in case you have trouble, or provide explanations of things that you’re curious about.

Prerequisites and Limitations

You need a reliable internet connection, since your phone calls will be sent entirely over the internet.  Any broadband service will do; phone service will use only a few Mbps during a call, and almost nothing when idle.

You need to be comfortable with very basic networking configuration.  If you can use the web interface to configure a router, you’ll do OK.

Lastly, you’ll need one or more old-style phones, wired together the way you’re used to.  If you have a big house with many phones, you’ll need to consider whether the new VoIP adapter will have enough power to drive them all, or you can just hook it up and keep unplugging phones until it works.  I have systems with six or so phones on each that work fine.

[Alternatively, you can abandon old-style land-line phones entirely and buy VoIP phones.  Doing so will give you access to many more features, but requires a wired internet connection everywhere you want a phone.  (WiFi VoIP phones are becoming available but are not yet widespread or cheap; they will be before long.)  For most people this approach is not practical for now.]

You’ll need a computer to set things up, but you won’t need to have a computer running to make or receive calls.

VoIP is not 100% reliable for faxing.  If you need to connect a fax machine, I’d suggest testing it before making a commitment.  It will work well enough for most people, but anyone who depends on reliable fax service may want to keep an old-style phone line to run their fax machine, or switch to an internet-based fax service.  

The Hardware
The Grandstream HT802 2-line ATA.

You’ll need an ATA (Analog Telephone Adapter) that lets you connect the phones in your house to the internet.  It’s a small box that costs $30 – $40.  Once you get it set up and working, you’ll probably forget you have it.

You need a location for the ATA that has access to a wired internet outlet, and access to the wired phone system in your house.  Probably where your router lives will be best.

I’ve had good luck with Grandstream ATAs.  You can get them from Amazon.  Grandstream has introduced new models of their ATA series (HT801/802), but the old models (HT701/702) are still somewhat available, especially on eBay, and are cheaper.  I will be describing how to set up the newer models but the older ones are similar enough that you should be able to follow along.  There is also a slightly lower-cost ATA available from Cisco, but I don’t have experience with it, and this article won’t describe how to set it up.

You can get ATAs that support one phone line or two (or more, but they get expensive real fast).  In this context, a “line” means the same as an old-style land-line: it has a phone number and you can plug a phone (or phones) into it.

The HT802 is probably the best choice for most people.  It supports two lines (you can just use one if you’d like), and is easy to set up and maintain.  If you’re absolutely sure you’re only ever going to want a single line, a one-line version is available for slightly less.

A note about warranties: Grandstream requires you to go through the dealer you purchased the item from in order to obtain warranty service.  I’d suggest asking the seller on Amazon if they will handle warranty claims for you; if not you don’t have a warranty.  These devices are quite reliable so your exposure is limited, but if it matters to you, check first.  Of course with Amazon you’ve got 30 days to return the item if you have trouble with it right off the bat.  I’ve never had one fail.

The VoIP Service

There are a number of bring-your-own-hardware VoIP providers out there.  I use Callcentric.  I’ve had good luck with them over the years, they have excellent support, and they are one of the lowest cost providers.

You can set up a phone line, with a new phone number, plus service plans for incoming and outgoing calls (they are separate), for about $5.  It doesn’t cost anything to cancel in case you try it and don’t like it.  You can probably end up keeping your old number; more about that later.

If you want to get started now, go here to set up an account with Callcentric.  Don’t order anything yet; we’ll go over your options first.

Things to Note About VoIP Services

First, incoming service and outgoing service are separate. You need both to replace an existing land-line. The incoming service is what’s associated with your phone number; the outgoing service knows your phone number too, to display Caller ID and to work with E911 service.

You also need plans for both incoming calls and outgoing calls. Start with pay-per-minute plans; you can upgrade later to unlimited plans for either or both.

You need to give Callcentric your credit card number. All calls are prepaid. When you sign up you put $5 in your account, which is then refilled with $20 any time it goes below $5. There are low limits on the number of refills per day and per month, so if somebody hacks your number and makes a lot of expensive international calls, your exposure is quite limited. Be aware that calls billed to your account, even fraudulent ones, are your responsibility; Callcentric doesn’t give refunds.

You can optionally add voicemail to your incoming line(s). You have to sign up for it but it doesn’t cost anything additional. I recommend doing so.

You need to set up E911 service on your outgoing line(s) so if you dial 911 they will have your address. You’ll get walked through the process when you sign up; be sure to follow all the steps as indicated and to check that you get an email saying that your E911 service is active. You don’t want to find out it’s not working when your house is on fire. Be aware that E911 services discourage “test” calls.

Start with a new phone number to use for testing, while keeping your old service and number. When you’re sure you want to commit, you can have your existing number “ported” to the new service.

Setting up your Callcentric Service

Presumably you’ve already signed up for an account; now add both incoming and outgoing pay-per-minute service. Spend some time looking through the Callcentric website, but don’t worry if much of it is confusing. We’ll explain what you need to know later on, and there’s much you don’t need to know.

At this point you’ll have an account name and password, a Callcentric account number which looks like a phone number with a “777” area code, and a new phone number. Write it all down and don’t lose it.

Next you need to create a default Callcentric extension. With the simple setup we’re discussing, you can forget about extensions and extension numbers; you’ll be using the default of extension 100.

Sign in to Callcentric and from the dashboard, pick “View/Modify extensions”. Pick “Add new extension”. Now fill in the options, most of which are self-explanatory. The extension number is 100, which is the default extension. The password is the most important — use a complex password (I recommend using an online password generator) and write it down. You’ll only need it once (in the next step) so it doesn’t have to be easy to remember so long as you have it written down.

I’d suggest not worrying about setting up voicemail at this point; it’s a bit complex and you don’t need it in a basic configuration.

When you’re done you’ll have one extension, which will be “unregistered” at this point because we haven’t yet set up the ATA. That’s next. Once the ATA is set up as described next, the status should change to “registered” which means that Callcentric is successfully talking to your ATA.

Setting up your ATA

Now that you have your ATA and a Callcentric account, you need to configure your ATA. This is without question the most complicated part of the process, but there’s little you need to know to do it successfully. There are hundreds of options to be set, but most of them can be left set to the default, and many of them don’t matter.

Callcentric has instructions on their website for setting up your ATA which can be found here. This is for the HT802 model ATA. There are also instructions for the HT702. If you have an HTx01 model the procedure is almost the same. All ATAs have pretty much the same set of options.

Two more things you should do are: upgrade the ATA’s firmware to the latest version, and change the default password for the ATA. Be sure to write down the password; I like to put it on a sticker on the ATA.

Once you get the ATA properly configured, the status on the website should change (in a minute or so) to “registered”. Your new phone system is live! As part of setting up your ATA you should have connected a land-line phone to your ATA; pick up the phone and you should get a dial tone. You should be able to dial out (using the area code even with local numbers) as well as receive calls at your new number. Try both.

Hints: 1) you need to use “1” followed by the area code for all calls, 2) when dialing, press “#” after entering the number to speed things up, and 3) don’t pause for more than a few seconds while dialing or the ATA will try to dial what you’ve entered so far, it won’t go through, and you’ll have to start dialing from the beginning. That delay is one of the options in the ATA setup if it is too short for you.

In Case of Trouble

The unfortunate fact is that when doing something this complicated, it probably won’t work the first time. Your first step should be to go through the entire configuration process and double-check that everything is correct. Get one character wrong and it will fail.

The first thing to try is doing the whole ATA setup again, in case you did something wrong. This frequently gets things going, and it only takes a minute or two to try.

Callcentric has very good support and they should be able to talk you through finding and fixing what’s wrong. Note that their support is intended for people with experience in VoIP, but they seem to be very patient when dealing with beginners.

Callcentric support is accessed from their website and is ticket-based. They don’t have phone-based support (which seems odd for a phone company), but I’ve found that for complex problems they will initiate a call. They respond quickly to most tickets.

Grandstream also has good support, primarily through their user message boards. Find the ATA message board. Note that their message boards ask annoying questions when you first post. This is part of an attempt to limit spam, and it will stop after your first few successful posts.

You can also post a comment here. I’ll do what I can to help, but there will be periods during which I will be unable to respond.

Porting your Existing Number

If you want to keep your existing number, you can probably “port” it to your Callcentric number. It’s quite an involved process, but is well-described in the Callcentric support area. There is a charge for porting, around $20, but Callcentric often has specials where they will waive the fee.

Be aware that porting takes some time to be done; I’ve had it happen within hours of applying, but usually it takes a few days. You’ll get emails from Callcentric telling you what’s happening and when they have a tentative date and time they will let you know.

When the port is accomplished, your existing phone service will stop working and you’ll have to begin using the new Callcentric service for all incoming and outgoing calls.

I strongly suggest that you experiment with the Callcentric service for a few weeks to be sure that it will work for you. Porting can’t be “undone”; if you decide you want to leave Callcentric you’ll have to initiate a new “port” from whoever you want to switch (back) to.

Cutting Over to your New VoIP Service

When you’re ready to switch to VoIP for good, simply unplug the phone wire from your old provider’s equipment and plug it into your new ATA. Everything should then work pretty much like it always did, but you’ll be using your new VoIP service.

If you’re not porting your old number or are starting service in a new location, you’ll be using your new Callcentric phone number. If you are porting, it’s best to make the cutover at the time the port occurs.

Be VERY SURE that you have disconnected the old phone service before plugging your phone wiring into the ATA. If both are connected simultaneously, bad things could happen, including blowing up your ATA. Everything will be ok if you are using the phone wire that used to be plugged into a cable modem or a phone company demarcation point, but if the ATA is in a different location, it’s easy to accidentally have both sources connected at once. Don’t do it. Disconnect the old phone service BEFORE connecting the new. Be aware that if you’ve canceled your old phone provider’s service and your dial tone has gone away, you are still connected to their network. Physically disconnect from it. Sometimes this requires disconnecting or cutting wires.

Note that you can connect to your existing wired phone system at any extension; it doesn’t have to be at the same place the old phone service was connected. That location is usually determined by where the phone wire comes into your house; the new location is determined by wherever you locate your ATA. Just be sure you disconnect from the old service first.

Fancy Stuff You Can Do

Once you’ve got your VoIP service set up, there are lots of things you can do, and a few you can’t:

  • You have to always dial the area code, including the leading “1”. There are fancy ways to eliminate this need, but until you get some more experience with VoIP (a lot more) you don’t want to go there.
  • Don’t forget that you can speed up connections by dialing “#” after the number.
  • There’s no operator. Dialing “0” gets you nowhere.
  • Callcentric has “411” information service. It doesn’t cost extra (just your regular outgoing call rate) but does have ads.
  • You can enable or disable international calling. Check to see if it is enabled for you, and disable it if you don’t expect to make such calls. International rates can be looked up on the Callcentric website, but for most countries they are very cheap. You can look up rates here.
  • You can use a softphone app on your smartphone to connect to your Callcentric account. This lets you make and receive calls on your home number from anywhere you have an internet connection. Your smartphone is just another extension of your home phone. This is great for traveling, and works anywhere in the world.
  • Callcentric has spam filtering to reduce the number of unwanted calls. I’ve found that it doesn’t block all of them but helps some. You can also filter calls by doing things like requiring callers to press a specific key to be connected. All this is explained on the Callcentric website here.
  • If you want to create a mixed system with some VoIP phones and some phones connected to an ATA, you can do this. It’s a good way to slowly switch over to a pure VoIP phone system.
  • Don’t forget to set up voicemail, even if you have an answering machine at home. In that case it will provide a backup so callers can leave messages even if your home phones are down due to a power or internet failure. All about Callcentric voicemail is here.
  • You should also check and set up your Caller ID and CNAM (the name associated with your Caller ID. Instructions are here.
  • Callcentric lets you have multiple numbers on your account, even (low-cost) 800 numbers, and have them all ring on your phone.
  • Callcentric can supply a number to be used for receiving faxes and will email a PDF of any faxes you receive at such a number. See here.

Saving Money for Sodastream Users: Sodamix

Part 2: Making Your Own Sodamix

The first post in this series tells how to avoid having to buy or refill the expensive Sodastream CO2 carbonation cylinders. This second post will introduce various ways to make your own sodamix, so you don’t have to buy that from Sodastream either.

There are several good articles on this subject, which you can find by searching, and which are written by people who are as obsessive about this kind of stuff as I am. Much of what I present here came from that information. But I also learned a lot myself along the way.

What You Need to Get Started

There are some things you’ll need right away. I’d suggest just buying the ones you don’t already have. They’re not expensive.

Dispenser bottles: I started out using the original Sodastream sodamix bottles to bottle my own. I quickly learned that they are just too small to bother with. I found quart squeeze bottles like restaurant kitchens use work very well. I started with six, which has turned out to be a good number. Amazon has lots of them for a couple of bucks each. I got mine from US Plastic, item number 60147. These are also a couple of bucks once you add shipping. The bottles have little red caps that get lost. Just throw them out.

Utensils: you’ll need a container, a funnel, and a spoon. I use a beaker for a container, but any glass or plastic measuring cup will do. If you don’t have an appropriate-sized funnel, just buy a set of them.

Digital scale: you need a good one, that reads to .01 gram and goes up to 500 grams or more. These are dirt cheap on Amazon or eBay; figure about $15. Buy one. Be sure it has a “tare” function; I think they all do.

An Overview of the Process

The key ingredient in making your own sodamix is flavor concentrate. This is very, very concentrated flavor, without any sweetening added. I buy it from a company called Rio Syrups, but they aren’t set up for retail sales and sell in large quantities, so I buy it in bulk, rebottle it in pints, and sell it on eBay. A pint of concentrate will make well over a gallon of sodamix, which in turn will make a whole lot of soda, 68 or more liters depending on how strong you like it.

I’m also selling 2-oz sample bottles of flavor concentrate on eBay. If you just want to see if making your own sodamix is something you want to do, it’s a cheap way to try it out. The sample-size bottles make about 17 oz of sodamix (roughly equal to one bottle of Sodastream flavors), which in turn makes about 8 liters of soda.

You’ll also need sweetener. If you don’t mind the calories (and the diabetes), you can use sugar. I prefer diet soda and use artificial sweetener. I’ve tried a number of combinations, and have settled on a mix consisting primarily of stevia, since it seems to have the fewest people saying it’s bad for you, and my mix tastes to me just like sugar.

Lastly, you’ll need a bit of preservatives. Sodamix will get moldy if you don’t use it. If you look at the ingredients Sodastream uses, preservatives are in there too. I’ve settled on a little citric acid and a tiny bit of sodium benzoate. I don’t refrigerate my home-made sodamix with the preservatives in there.

Once you get set up to make sodamix, you measure out the ingredients in grams using the scale, which gets reset to zero after adding each ingredient using the tare function. Then dump everything in a quart bottle using the funnel. Rinse your mixing container several times with hot water and dump that in too, to be sure to get everything. Shake well, fill the rest of the way with cold water, and you’re done: a quart of freshly-made sodamix.

[Note: I also include traditional kitchen measurements in my recipe, but recommend that you go by weight instead. It’s more accurate, and much easier using your scale’s tare function.]

A note about concentrations and dilutions: there is much variation in how strong your sodamix is, and how much you use in a liter of soda. I started out trying to make everything come out the same strength as Sodastream’s sodamix, and I think what I’ve come up with is pretty close. But you can vary the quantities of the various ingredients quite a bit to get soda as strong or as sweet as you’d like. Treat these recipes as a starting point. I personally make sodamix about 25% stronger than the recipe listed below so I don’t have to make it so often. Also, don’t be too fussy about quantities as you measure things — being off a bit is fine.


I use two common preservatives to keep the sodamix from getting moldy: citric acid and sodium benzoate. Both are readily available from Amazon or eBay, in packages much bigger than you need. Citric acid is pretty innocuous but sodium benzoate might be objectionable to you; leave it out if you prefer, but if you do so keep your sodamix in the refrigerator.

For a quart of sodamix I use 0.5 gram of sodium benzoate, and 1 gram of citric acid. It’s not much but it does the trick. It comes out to about 11mg of sodium benzoate and 22mg of citric acid per 12-oz serving.

Sweetening With Sugar

If you prefer sweetening with sugar, use about 560 grams of sugar to a quart of sodamix. That’s a lot of sugar, well over a pound.

I’ve never tried mixing up sugar-based sodamix, so I don’t know how hard it is to make. It’s probably best to put the sugar in the bottle first, then measure out the rest of the ingredients and add them before adding water. It might not be easy to get that much sugar to dissolve. Using hot water would help.

Sweetening Without Sugar

I went through quite a few variations before settling on a stevia/erythritol blend. Stevia by itself is extraordinarily sweet but has an unpleasant aftertaste. Adding a bit of erythritol kills the aftertaste and makes it taste (to me at least) just like sugar. Erythritol is a sugar alcohol and occurs naturally in some foods.

There are many stevia blends available (often with erythritol), but what we want is pure stevia for our sodamix. It’s a little hard to find but you can get it in liquid form and in powder form from Amazon or eBay. I like to use a combination of both liquid and powdered stevia. I’ve found that 2.5 grams of powdered stevia, 9.5 grams of liquid stevia, and 10 grams of erythritol make a good combination for a quart of sodamix.

I prefer to use stevia as I think it’s healthier than other artificial sweeteners like sucralose, which is what Sodastream uses. But using sucralose is cheaper and if you don’t object to it, here’s how: use 2g of acesulfame potassium (Ace-K) plus 8g of pure liquid sucralose instead of the stevia and erythritol. The Ace-K makes it taste better and is in Sodastream’s recipe too.

The Diet Sodamix Recipe

Now let’s put it all together. To make a quart of diet sodamix, use the following ingredients along with enough water to make a quart:

0.5 gscant 1/4 tspsodium benzoate
1.0 g1/4 tspcitric acid
10 g1 tbsperythritol
2.5 g1 tspstevia powder
9.5 g1 tbspstevia liquid
110 gscant 1/2 cupflavor concentrate
Sugar-Free Sodamix Recipe

When measuring flavor concentrate (or adding sodamix to your soda), be sure to shake it well first. Actually I forget about half the time and it doesn’t seem to matter. But the label says to shake it, so I’m passing on that suggestion. Some of the concentrate flavors, like cola and especially pink grapefruit, separate on standing which looks terrible. They haven’t gone bad, just shake well to recombine them.

Using the recommended quart squeeze bottle for the sodamix, I like to use two to four squeezes of sodamix per liter of soda — that’s an ounce and a half up to three ounces. If you like your soda light, use less; if you like it strong and sweet (like bottled soda) use more.


Flavor Concentrates

As mentioned earlier, flavor concentrates are not readily available in quantities suitable for home use, so I’ve decided to buy them in bulk and rebottle them in pints. A pint of concentrate will make about four quarts of sodamix. A quart of sodamix in turn makes maybe 16 liters of soda. So a pint of concentrate will last you quite a long time.

There are literally hundreds of varieties of flavor concentrate available. Some are great and some not so much, and I’m selling only the ones I like. If you want a flavor not listed, let me know and I’ll try it, and add it if it’s decent. I’ll also be adding ones I’ve tried and liked.

One of the flavors I offer is called Dr Rio, and it’s supposed to be a knock-off of Dr Pepper. It’s pretty good, but it’s not much like the original. If you’re looking for something that tastes like Dr Pepper, try Dr Rio. You’ll probably like it even though it’s not very close.

I’ve been adding some of the other ingredients, individually and in kits, as well as supplies like sodamix bottles, to my eBay store.

My Sodamix Supplies on eBay

I sell ingredients individually and in kits. You can get everything but the flavor concentrates on Amazon, but in package sizes much larger than what you need. My ingredients and kits are cheaper and more convenient. If you add them to an order they won’t usually increase the shipping cost. The flavor concentrate bottles will make 8 quarts of sodamix (80 to 120 liters of soda), other ingredients are sized to make 25 or 50 quarts of sodamix.

This stuff is expensive, especially when you add shipping. But do the math and it’s still cheaper than Sodastream flavors. I’m charging very little above my cost, and shipping is also at cost (plus a nominal 75-cent fee). You can save considerably on shipping by buying several items — if practical I can then use a flat rate box. I refund significant excess shipping automatically.