Change the world

Control Software

The following section will describe what you will need to start developing control software on the MultiPIC Development Board.



The most important part you need is the actual PCB.  This you can buy from Mr Ehlers in B203.  When you get the PCB, you will see that it actually consists of 2 PCBs, separated by a thin perforated line:

Bend the PCB at the perforation and the PCB should split into 2 parts.  The bigger of the two PCBs is the MultiPIC Development Board PCB and should look like this:

The smaller PCB is an ICD1 programmer which you can populate if you want to have your own programmer.  The ICD1 cannot be used from within MPLAB however, but uses a separate small Windows application to download the compiled code to the PIC using a COM port on the PC.  A section for building and working with the ICD1 will follow soon.

The following components are required for the MultiPIC Development Board:





5mm or 3mm Red LED




1N4007 diode




1N4148 diode




1N6267A transient voltage suppressor




100uF 25V electrolytic capacitor




100nF ceramic capacitor


C1, C2    *1


33pf ceramic capacitor


C6, C7


10Mhz or 20Mhz UM-5 low-profile crystal


Y1    *2


100R 0.25W resistor




1K 0.25W resistor




10K 0.25W resistor




330R 0.25W resistor




6mm miniature PCB mount pushbutton




2-Way screw type PCB terminal




5x2 IDC box header


J1, J2, J3, J4, J8    *3


DIP40 IC holder


U2    *4


2-pin jumper strip and jumper


JP2, JP3, JP4    *5


RJ-12 socket (right angle PCB mount)





*1     C1 and C2 are used when a 40-pin PIC is used; for a 28-pin PIC use just C17; for a 18-pin PIC use only C15; for a 8-pin PIC use only C14

*2     The example programs assume the use of a 10Mhz crystal with PLL enabled for 18F PIC microcontrollers, so try and stick to a 10Mhz crystal

*3     These sockets are optional, but makes it easier to connect your external interfacing circuits to the MultiPIC Board. If you use the sockets, then also get the corresponding 5x2 IDC Connectors and some ribbon cable to plug into the sockets (see the picture below)

*4     U2 is sued when a 40-pin PIC is used; for a 28-pin PIC use U1; for a 18-pin PIC use U3; for a 8-pin PIC use U4

*5     These jumpers are only used when you run the programmer in DEBUG mode, otherwise they can simply be omitted. Only close one of the jumpers to connect the PGM pin of the programmer to the corresponding RB3, RB4 or RB5 pin on the PIC (see the MultiPIC schematic diagram). DO NOT CLOSE MORE THAN ONE JUMPER!


Power Supply

The MultiPIC Development Board must be powered from a +5V DC supply that should be able to supply +/- 1Amp current.  The power supply that you built in Design Projects I is perfect.  Make sure you do the power connection as follow:



The 16F and 18F PIC microcontrollers can be programmed using the following programmers:

·         ICD2 Programmer

This option allows you to program the PIC in-circuit from within the MPLAB design software.  Each workstation in B102 has one of these programmers, although the programmer is secured to the station.  The programmer’s grey 6-wire cable must be plugged into the RJ-12 socket on the MultiPIC Development Board.


·         ICD1 Programmer

The ICD1 is not supported by MPLAB anymore.  Instead we make use of a small Windows application called CCSLOAD to download the compiled code to the PIC.  You can build your own ICD1 programmer with the PCB you received and some components.  A section for building and working with the ICD1 will follow soon.  A 6-wire cable will have to be made up to connect the ICD1 to the RJ-12 socket on the MultiPIC Development Board.



·         Modified ICD1 Programmer with ZIF socket

This is the same as the ICD1 programmer, but is modified so that a PIC can be placed into a ZIF socket on the programmer.  This means that you will have to remove your PIC from your PCB, place it into the ICD1’s ZIF socket, run the CCSLOAD application and download the compiled code, remove the PIC from the ZIF socket and place it back into your PCB.  There are about 6 of these modified ICD1 Programmers in B102, but due to incorrect usage by previous students the operation of these cannot be guaranteed.



Microchip’s MPLAB IDE will be used as the design software for developing control code for the PIC microcontroller.  You have a choice of which programming language you want to use, but is generally either Assembly or C.  It is highly recommended to use C.  In B102 there are Microchip C18 compilers installed which is used with MPLAB.  See the section MPLAB C18 Walkthrough for a guide on how to use MPLAB with the C18 compiler to write control code.