Introduction: PIC Microcontroller Development Board System
This project is for the design and use of a PIC development tool which is flexible to suit a wide range of PIC based electronic projects.
It is often easier to develop microcontroller projects with the use of development tools; which allow user based code to be demonstrated in real time. However, from personal experience, a number of existing development boards can often suffer from one or multiple of the following limitations;
1. Comprehensive designs are often expensive,
2. Carry very little peripherals,
3. Contain peripherals which are not suited to specific projects and therefore are rarely used,
4. Contain peripherals which occupy a large amount of board space thus adding to the cost,
5. Are unable to be changed or support a change in peripherals,
6. Contain a surface mount processor which cannot be removed and thus limiting the use case of the development board.
In reality, the user often chooses a development board based on the requirements of the project, however, this can lead to a mountng collection of development boards or restrict the freedom of the design.
The PIC development board design presented here aims to expand on these limitations.
The development system makes use of a two PCB board design principle.
The first PCB is a main back plane board which hosts the power supply, MCLR reset circuit, RS232 and PICKIT programmer pin-header. This board serves as an interconnecting board which holds up to six daughter boards.
The second PCB board type is the daughter board component. A standardised PCB design and footprint is used to create a PCB board design which can be added and removed from the main board as desired. The purpose of the daughter board is host either a microcontroller or peripheral circuit for example, a Digital to Analogue Converter (DAC).
The design intent is to create daughter boards as required. This project therefore is ongoing.
As part of this project I have designed a number of basic daughter board designs that are available for Gerber / Project file download.
For details regarding specific daughter boards please see project document: PIC Controller Development Board – Daughter Board Catalogue, document ref: RKD3, made available with this document location or via my website at; www.rkelectronics.org/picdev
The daughter boards connect to the main board via two 2 x 30 2.54mm pitch pin headers. This allows daughter boards to be created either via a PCB fabrication house or by hand using Vero board.
Step 1: Daughter Boards
The main board and daughter board interconnect include the following busses;
1. 43 dedicated I/O lines for either analogue or digital,
2. VDD and GND power supply,
3. 5 dedicated SPI Chip Select (CS) lines,
4. SPI Buss for MOSI, MISO and CLK lines,
5. I²C shared as part of the SPI buss,
6. Dedicated TX and RX lines for RS232, RS485 and MIDI,
7. Dedicated D+ and D- lines for USB data,
8. Dedicated PIC programming lines, MCLR, PGD and PGC.
Due to the nature of SPI chip select lines, these lines are shared with various I/O lines. The sharing of which I/O line depends on the microcontroller daughter board used. It is intended that the connection of the CS lines to the microcontroller will be done on the daughter board. For example, for the PIC16/18 40 Pin USB daughter board for PIC18F4550 the CS lines share I/O pins 16, 17, 18, 19 and 32, which equates to PIC pins Port C0, C1, C2, C3 and E0. For this reason it is required for all peripheral boards using SPI to include a switch or breaker method to disconnect unused or other utilised CS lines.
Due to the nature of the RS232 TX and RX and USB D+ and D- lines, these lines are also shared with various other I/O lines. For this reason it is required for all peripheral boards using RS232, RS485 or USB to include a switch or breaker method to disconnect unused or other utilised TX, RX, D+ and D- lines.
The I/O lines are routed to various microcontroller pins, which pins are detailed within the daughter board schematic or the PCB silkscreen. Usually ports are routed to;
1. Port A = I/O lines 0 – 7,
2. Port B = I/O lines 8 – 15,
3. Port C = I/O lines 16 – 23,
4. Port D = I/O lines 24 – 31,
5. Port E = I/O lines 32 – 35,
Other PIC types such as dsPIC30/33 and 24 series will use different wiring arrangements.
Step 2: Gerber Files
This page contains the Gerber files required to manufacture the Main Board and Daughter Boards created so far. The list is as follows;
1. Main Board,
2. Main Board to 2nd Main Board connection,
3. dsPIC30F 28 Pin [Type A]
4. dsPIC30F 28 Pin [Type B]
5. dsPIC30F 28 Pin [Type C]
6. dsPIC30F 40 Pin [Type A]
7. dsPIC30F 40 Pin [Type B]
8. LEDs for I/O 0 - 39
9. MCP3208 [Type A]
10. MCP3208 [Type B]
11. PIC16-18 [8-14-20Pin][non USB]
12. PIC16-18[28Pin][non USB]
13. PIC16-18[40Pin][non USB]
14. PIC16-18[8-14-20Pin][USB]
15. PIC16-18[28Pin][USB]
16. PIC16-18[40Pin][USB]
17. Switches
18. ULN2003
19. Seven Segment
20. 12 Bit DAC
21. MIDI
22. PIC ADC
23. Push Buttons [Type A]
24. Push Buttons [Type B]
25. 16 x 2 Alphanumeric LCD Display
26. dsPIC30F [18 Pin]
27. Pin Header Breakouts
Attachments
Main Board.zip
Module - 7 Segment.zip
Module - 12 Bit DAC.zip
Module - Board-To-Board Expansion.zip
Module - Breakouts.zip
Module - dsPIC30F 18Pin.zip
Module - dsPIC30F 28 Pin [A].zip
Module - dsPIC30F 28 Pin [B].zip
Module - dsPIC30F 28 Pin [C].zip
Module - dsPIC30F 40Pin [B].zip
Module - dsPIC30F-40Pin-A.zip
Module - LCD.zip
Module - LEDs.zip
Module - MCP3208 Type 2.zip
Module - MCP3208.zip
Module - MIDI.zip
Module - PIC ADC.zip
Module - PIC16-18 [8-14-20][nonusb].zip
Module - PIC16-18 [28][nonusb].zip
Module - PIC16-18 [40][nonusb].zip
Module - PIC16-18[8-14-20][USB].zip
Module - PIC16-18[28][USB].zip
Module - PIC16-18[40][USB].zip
Module - Push Buttons 1.zip
Module - Push Buttons2.zip
Module - Switches.zip
Module - ULN2003.zip
Step 3: KiCAD Library Files
This bit here is for the KiCAD component library and footprint for the daughter board. You will need to add the edge cuts lines around the footprint before exporting your own gerber files.
Hope you enjoy this project!
my website for more projects is at
Attachments

Participated in the
PCB Contest
7 Comments
2 years ago
Awesome project, thanks for posting!
4 years ago
As someone who is in the process of making a PIC-based development board himself, I can see that there is a HUGE amount of work in your board..great job, friend!
Reply 4 years ago
Thanks Pityukecske. It took about two months to design in my spare time. Designing a PIC development board is never easy, there are so many ways of doing it. Trying to design a development platform that is suitable for everything is impossible. I guess in my opinion, the best route is to try and make your platform as flexible as possible. Avoid creating dedicated space for non-swapable peripherals which may never get used.
4 years ago
Why not use stacking headers like an Arduino, or ribbon cables to connect daughter boards? Maybe I can't see it clearly, but the base board looks huge (and expensive).
Reply 4 years ago
Hi Binaryben, thanks for the comment. You raise an interesting debate regarding the benefits of different staking methods vertical or horizontal. I can certainly see the benefits of vertical staking if size and cost is an issue.
The daughter boards all use the same pinout and as a result can be staked vertically if you wish. The backboard is not necessarily required. In that respect the design is quite flexible.
The daughter boards are compatible with the 0.1" (2.54 mm) pin-out pitch standard, so daughter boards can easily be created using veroboard / stripboard so commonly used by hobbyists and professionals alike. Arduino, uses (from memory) pin-out placements which do not allow this so easily.
I chose a horizontal arrangement as it has the benefit of allowing more interaction between components and the user. Projects that use buttons and displays do not tend to favour vertical stack arrangements. Often, Arduino projects rely heavily on the use of external breadboard and breakout wiring, something I did not want to depend on too much with this project (although I do provide a breakout board with this project pack for that purpose).
But you are correct this arrangement does bring with it inherent detriments of increased size and cost.
In respect to size, the main board is 282 mm x 173 mm which is comparable to other larger development boards on the market, although not as small as Arduino. From a cost perspective, the board may not be as expensive as you think. I used JLCPCB for mine and cost less then £30 delivered, which in the grand scheme of things is not too expensive and is comparable in cost to an Arduino Uno.
4 years ago
Cool. Thanks for sharing! I learned electronics using PIC chips, but it has been a while since I used one.
Reply 4 years ago
Your welcome, thanks for letting me post my project