Device programmers are used to program nonvolatile memory such as microcontrollers, erasable programmable read-only memory (EPROM), programmable logic devices (PLDs), programmable array logic (PAL), generic array logic (GAL) and other electrically programmable devices.