PIC Programming for Fun

Where tomorrow's bits are being twiddled today.

"To do good work, one must first have good tools."

Chinese proverb.

Some tools and equipment are required in order to put PIC chips to use. At the very least, a computer is required to write and edit programs, assemble the code and simulate the results. A means of programming real chips and a circuit in which to operate the programmed chip is needed to let the microcontroller interact with the real world. Test equipment becomes very useful when things don't work as intended and troubleshooting and debugging is required.

  • Development Environment
    The Microchip Integrated Development Environment is as good a place to start as any, and the price is right - free! There is lots of support and an active forum filled with answers to many questions.
  • Programmer
    I use two different programming tools.

    I have an old PICStart Plus that I bought eons ago when I first learned about PIC microcontrollers and started using them. I still use this device for programming DIP devices that get plugged into sockets. Mine is the old-fashioned kind with the beige plastic case, not one of them thar new fangled transmalucient thangies.

    I also use an MPLAB ICD 2. This device allows the target microcontroller to be worked with while it is in its circuit, allowing for quick program-and-test cycles and real time debugging. In circuit programming, and debugging when needed, is the way to go.
    (The MPLAB ICD 2 is now obsolete so an MPLAB ICD 3 should be considered instead.)

    Now a days, a PICkit 2 is probably a better choice for programming and debugging. I also have an original MPLAB® In-Circuit Debugger (ICD) but that is such an ancient abandoned piece of equipment no longer supported by Microchip that it just collects dust on a shelf somewhere.
  • Circuit Board
    For very simple circuits, I either etch or mill my own. However, I usually have local circuit board shops print prototypes up for me. I try to lay out boards as general purpose as possible, even when they have very specific purposes. This way, blank boards can offen be reused for new applications. Sprint Layout generally gives me acceptable output files for PCB production. Eagle has a steep learning curve but is well worth the effort. GCPrevue is a very useful utility for inspecting Gerber files and some PCB printing houses can work directly from the resulting GCPrevue project file.
  • Power Supply
    An adjustable bench top power supply, such as this relative cheapy I bought from a local electronics shop, is fine for powering assorted projects. The adjustable controls are handy for testing things and the current limiting function is useful for preventing the loss of that magic smoke. Wall warts also work for some tasks although linear types can have very poor regulation without a decent load. It's also a good idea to include a diode on the power input line to prevent catastrophies if the input voltage is ever reversed.
  • Volt Meter
    At the very least, a volt meter lets you check that the right number of volts are where you think they should be.
  • Oscilloscope
    Hardware debugging can be close to impossible without a 'sillyscope. If you plan on doing much electronics work, a scope is pretty much a must have tool. Beg, borrow, steal, ask Santa - whatever it takes. Then learn to use it. A modern digital scope can be had for not too many dollars and is well worth it. I own an Instek GDS-820S which didn't cost me much but can save a bucket load of time when something isn't working right. In fact, for some timing jobs, it's easier to throw any old program code together, measure the results and adjust the timing in the program rather than actually pre-calculate what the timing constants should be. Flickering debug LEDs can also be much easier to monitor on an oscilloscope.
gratuitous advertizing goes here