Introduction: Solder Your Own HelvePic32 ChipKit Board
If you are used to the Arduino, you are ready for the HelvePic32 ChipKit Platform!
I have worked now for some years with the Arduino. There were two things that bothered me: the limitation to 16 MHz and the 32 kB Flash memory. I usually had enough pins to connect the peripherals I needed but often I had to squeeze the code into the chip and sacrifice code.
So I looked around and found the ChipKit boards which range up to 512 kB flash and 80 MHz at the footprint of the Arduino/Mega2560. While I lookde at these boards I found a guide pon how to build your own ChipKit on a breadboard. The chip used comes with USB support so there is no need to fiddle around with a RS232 board to connect the board to my PC. After a nice Sunday afternoon I had my breadbord ChipKit up and runnning so I decided to put that on to a board.
In the design I thought, that ready made boards are not as funnny as a board I have soldered by myself. So all parts should be easy to solder ruling out SMD parts to start with. So the entire board uses Through-Hole parts and the kit is easy to solder for beginners.
The ChipKit IDE is code compatibel to the Arduino, so libraries can be used for the ChipKit. The only caveat is that the ChipKit world is 3.3Volt, but nowadays, this becomes more and more standard and less and issue.
Step 1: HelvePic32 Features
The HelvePic32 has the following features:
- PIC32MX250F128B processor
- 128 kB Flash, 32 kB RAM
- 40 MHz
- PTH, no SMD - I know, bulky and not sexy but acn be soldered by beginners such as kids
- All available pins are borken out to the side, all pins are in 0.1" raster
- both sides have the same pin layout so attachments (wings) to one side can be connected to the other side as well (with a change of the pins of course)
- pin rows are distant from the PCB edge so angled pin connectors can be used
- USB mini connector: not as bulky as the a-type and not so delicate as the micro type
- PicKit pins on seperate pinrow to program the chip directly using PicKit3
- I2C on seperate pinrow pull-up resistors (4.7k) for I2C are present and selectable by jumpers
- USB pins are on a seperate pinrow both UARTs are on pins near the USB pinrow
- SPI on ICSP 6-pin header
- 8 MHz external oscillator leading to 40MHz CPU clock
- use of standard DP32 bootloader
- 2 serial ports (UART) independent from USB serial port
Step 2: Get the Kit
The kit can be obtained from the German HelvePic32 Site or from the Swiss HelvePic32 Site
This is also the reason for the unusual name of the board: Switzerland is also known as the Confederatio Helvetica and the board was created by the maker group near Basel, Switzerland.
The kit is offered at cost and shipped worldwide from Germany and into Switzerland from Basel to minimize the postal charges.
Step 3: Assemble the Kit: Board, Resistors and Diods
Start by getting familiar with the board PCB.
Then solder the resistors in place as shown on the picture. Resistors are not polarized and can go in in any direction.
Next ther are two diodes. They are polarized so the white marking goes into the PCB at the marked pin. These diods are there to protect the different power sources so that the board later selects the power automatically.
Step 4: Assemble the Kit: Buttons and USB Port
The two buttons should be easy to solder in as they fit only in one direction. The image shows however the alignment to make sure the button goes in correctly
The USB port is the tricky most part to solder. The pins are very close so use a soldering iron with a small tip and take your time. Once you have done this part, relax as the toughest step is done.
Check with a multimeter that there are no shorts between the pins of the USB port.
Step 5: Assemble the Kit: IC-Socket, Capacitors, Crystal and LEDs
Solder the IC socket and preserve the marking on the socket for the later insertion of the chip.
There are two 33pF capacitors that go onto the board together with the 8MHz crystal. The chip internally scales this up to 40 MHz and the crystal is there to give a precise time reference.
The 3 100 nF capacitors are there to filter any ripples on the suply voltage. These capacitors as well as the 33 pF capacitors are not polarized.
Finally we solder in the large 10 uF elco and the tantal elco. The 10 uF elco is black and has a white marking for the negative (-) pin. The tantal-elco is a yellow drop and a faint marking on one side. If you can see the marking, the positive pin is at the right. Take car to insert the elcos according to their polarity or they will be destroyed when powering the board.
The LEDs go into the position as marked with the polarity on the PCB.
If you have a laboratory power source, you can connect Ground to the pins marked GND and 3.3V to the pin marked 3V3. The green LED shoudl light up. If you put 5Voot to the pin marked 5V, the red LED should light up. If you connect 3.3V to the pin 2 on the irght side of the board, the yellow LED should light up.
Step 6: Assemble the Kit: Power Regulators and the Chip
Insert the power jack and the power regulators.
The 5V regulator has the marking MCP 1702 5002 and the 3.3 Volt regulator has the marking MCP 1702 3302. Take care to insert them correctly as marked on the PCB.
You can now connect up to 12 Volts to the power jack and both power LEDs should light up and the pins marked 3V3 should show 3.3 Volts (usually they show 3.29) and the 5V pin should show 5 Volts.
You can now insert the chip into the socket. Please check that the orientation matches the markings on the PCB. A flase inserted chip is probably dammaged when powered.
You are done!
If you think this is simple - that is the intention. The kit is designed to give you the nice feeling to build a microcontroller board all by yourself with beginners knowledge.
Now lets start get an LED to blink ...
Step 7: Upload the First Sketch
If you know the Arduino IDE, you can easily use the MPIDE to program the HelvePic32. It comes with the bootloader for the ChipKit DP32 loaded and loading a sketch is easy:
In a small deviation from the Arduino, you have to manually put the HelvePic32 into bootloader mode by this little procedure:
- press and hold the program button
- press the reset button
- release the reset button
- release the program button
Your PC should now see a serial port and Windows PC´s will need to point the operating system to the drivers subdirectoy of the MPIDE software.
I personally prefer the UECIDE software as this IDE combines the Arduino world with the ChipKit world.
Further examples are given at the playground of boxtec (in German) and at my homepage (in English).
The dedicated HelvePic Homepage is under construction as I move the examples and demos to this site.
The blink sketch
It is a common habit to welcome the world with a blinking LED. Load the following blink sketch, select the DP32 board and the correct port:
const uint8_t LEFT=0; const uint8_t RIGHT=1; uint8_t nP[2][8] = {{0,17, 9,10,11,12,13,14},{18,17, 1, 2, 3, 6, 7, 8}}; void setup() { pinMode(nP[RIGHT][2],OUTPUT); } void loop() { digitalWrite(nP[RIGHT][2], HIGH); delay(250); digitalWrite(nP[RIGHT][2], LOW); delay(250); }
I use the definittions at the beginning of the code to easily access the pins by calling out the sides LEFT and RIGHT.
Step 8: HelvePic32: Next Steps
The HelvePic32 gets wings!
The easiest way to extend the GelvePic32 is to use attached PCBs I call wings. The popular most is the Grove Wing. It gives you access to all Grove modules from Seeedstudio. These will keep you busy for a while ...
The GrovePi uses the same chip as the HelvePic32 so attaching the Raspberry Pi via I2C to the HelvePic32 and loading the GrovePi firmware should offer you the same features.
Furthermore a protoshield is complete for those who want to develop their own circuits.
The wings will soon be available form the helvepic32.de page.
There are two boards under development: A soldered version for those who do not want to solder the board themselves and a breadboard version.
Once you have started the UECIDE or the MPIDE, check the other ChipKit boards. You will be surprise what universe you will find there
Ciao! Mathias