Introduction: Pinguino Project (a PIC Microcontroller Based Arduino #No Programmer Required)

Picture of Pinguino Project (a PIC Microcontroller Based Arduino #No Programmer Required)

Hey Guys i am Back after 2 months with Awesome Project,This is a Complete tutorial to make PIC Microcontroller based Arduino ,which can run Arduino Programs on PIC18F4550 or PIC18F2550 Microcontroller , one advantage on this microcontroller is ,it does'nt require any External Programmers, Since it has inbuilt USB support .so guys lets get started

Step 1: Things Needed !

Picture of Things Needed !

1) PIC18F2550 (28pin) -1

2) Crystal 20Mhz -1

3) Capacitor -22pf -2

4) Resistor 470ohm - 2

5) USB B type PCB mount - 1

6) Capacitor 220nf - 1

7) Jumpers -few

8) LED - 1 or 2

9) Push button

10) Resistor 10K ohm - 1

Step 2: Circuit Diagram for Pinguino Board

Picture of Circuit Diagram for Pinguino Board

Connect all the components as shown in the circuit diagram on Breadboard or you can make your own PCB board , here i used Breadboard for my project.

Step 3: Downloading PINGUINO IDE

Picture of Downloading PINGUINO IDE

Download Pinguino IDE from this website

Step 4: Download Bootloader File !

Picture of Download Bootloader File !

Step 5: I Used PICKIT2 Which I Purchased It From Amazon India

Picture of I Used PICKIT2 Which I Purchased It From Amazon India

Here we just need to put microcontroller on to the ZIF socket and connect it to pC, open PICKIT2 Software and Upload the Code

NOTE: if you are using standard PICKIT2 then follow next step !

Step 6: How to Use PICKIT2 to Upload HEX File to the PIC Microcontroller

Picture of How to Use PICKIT2 to Upload HEX File to the PIC Microcontroller

Download PICKIT2 software here:

Download PDF from Microchip on uploading HEX file to PIC microcontroller using PICKIT2

PICkit is a family of programmers for PIC microcontrollers made by Microchip Technology. They are used to program and debug microcontrollers, as well as program EEPROM. Some models also feature logic analyzer and serial communications (UART) tool.
The PICkit 2 — introduced in May 2005 — replaced the PICkit 1. The most notable difference between the two is that the PICkit 2 has a separate programmer/debugger unit which plugs into the board carrying the chip to be programmed, whereas the PICkit 1 was a single unit. This makes it possible to use the programmer with a custom circuit board via an In Circuit Serial Programming (ICSP) header. This feature is not intended for so-called "production" programming, however. The PICkit 2 uses an internal PIC18F2550 with Full Speed USB. The latest PICkit 2 firmware allows the user to program and debug most of the 8 and 16 bit PIC micro and dsPIC members of the Microchip product line.

More info from this website :

Step 7: After Bootloading

Picture of After Bootloading

Make pinguino Circuit and connect it to the computer through USB, Uploadd pinguino project drivers,

you can download it from Pinguino official website and everything is ready to Code.

Step 8: PInguino BLINK

Picture of PInguino BLINK

void setup()




void loop()


digitalWrite(USERLED, LOW);


digitalWrite(USERLED, HIGH);



For more examples :

Step 9: Uploading Code to Pinguino Board

Step 10: Build Your Own Pinguino on PCB...

Picture of Build Your Own Pinguino on PCB...

Build you own PCB and solder all components.i have uploaded design files download and follow PCB designing steps on my other instructables.

Step 11: ADDING LCD 16*2 DISPLAY...!

Picture of ADDING LCD 16*2 DISPLAY...!

/* ----------------------------------------------------------------------------


---------- LCD 2x16


01 - VSS (GND)

02 - VDD (+5V)

03 - Vo (R = 1K Ohm to GND)

04 - RS (pin 8 in this ex.)

05 - RW (GND = LOW = write mode)

06 - EN (pin 9 in this ex.)

07 a 10 - D0 a D3 (connected to GND in this ex.)

11 a 16 - D4 to D7 (pin 0 to 3 in this ex.)

15 - LED+ (R = 470 Ohm to +5V)

16 - LED- (GND)


void setup()


lcd.pins(0, 1, 2, 3, 4, 5, 0, 0, 0, 0); // RS, E, D4 ~ D8

// LCD format

lcd.begin(16, 2); // cols, lines, [dotsize]

lcd.home(); // 0, 0

lcd.printf("PINGUINO PROJECT");

lcd.setCursor(0, 1);



void loop()




About This Instructable




Bio: Electronics and Automation Engineer, Game designer, Artist! EMAIL:
More by AXR AMAR:#DIY# How to grow Bonsai (or any plant) using Internet of things (IOT)#DIY# A Complete Guide to Build Your own ATtiny85 Project PCB with Relay and Interfacing HC05 Bluetooth Module to it Pinguino Project (a PIC microcontroller based Arduino #No Programmer Required)
Add instructable to: