I’m looking into some issues a customer is having with velocity mode in our Motion Mind 3. At the same time I’ve had some requests for new functionality in the product. So I had to break out the MPLAB ICE 2000 to emulate the PIC18F2525 that runs this motion controller. ICE stands for in-circuit-emulator, and MPLAB is Microchip’s development environment (where you write the code). The emulator plugs into a socket on our board and provides a pin-for-pin replacement for the actual microcontroller. The board at the top of the risers is a device adapter and is specific to both the product family and the pin style of the microcontroller you’re using. It connects to a processor module specific to the family of processors you are using. The processor module plugs into the MPLAB ICE 2000, which in turn is controlled by MPLAB running on a computer.
Emulators are great because they allow you to run your code on your hardware and step through the program you write. We really couldn’t do our job without them. The one in this picture was new and shiny about a decade ago. Nowadays most microcontrollers have hooks for in-circuit debugging which is pretty much the same as emulation (as far as I’m concerned). Today’s debuggers are tiny, inexpensive, and require pretty simple connections. I developed the Synaptron Micro using an MPLAB ICD 3 (ICD = in-circuit-debugger). The debugger costs under $200. The emulator system was at least a few thousand dollars when you add all the different parts we needed.
Plugging in the MPLAB ICE today made me realize how close to the end of its life it is. It’s been riding our Motion Mind product line through 3 hardware iterations and about 20 firmware revisions. It still works great, but what a throwback to the turn of the century it is.