If you have developed code for Pinguino, please contact us.

We’re looking for libraries for (non-exhaustive list) :

    • DS3231 RTC
    • RFID 13.56Mhz and 125Hz
    • MP3 player module
    • NRFL01+ wifi module
    • 433 and 315Mhz RF module
    • 3-axis accelerometer
    • CMOS camera (OV7670)
    • Heart rate sensor
    • Ultrasonic distance sensor
    • GPS module

Thank you.


Pinguino is making PICs more accessible and productive to work with

Here is what Ian thinks about Pinguino :

Although it is interesting and useful to learn all the fine details of making things work, I often wished I could just focus just testing an idea, not on jumping the hurdles.

I was envious of the easier path Arduino owners had. Now I found Pinguino and I am impressed with the project as a whole.

Pinguino is doing a fantastic job of making PICs more accessible and productive to work with.

I have used PICkit / MPLAB a fair amount. I thought the self-assembly kit was a convenient way to get the components with a nice PCB at a very reasonable price, but that I would stick with PICkit / MPLAB.

However the IDE and libraries are easier to engage with, at least for people who do not already have the expertise and a body of code to serve their needs.

Now I have seen how much more productive your system can be, I will use it whenever I can. OK, there are snags to resolve, but it is easy to see the big picture and forgive those.

Since I have done much more with my PIC than I would have achieved in the same time without your system. So congratulations and best wishes. You are doing a great thing here.


4.12 : new 8-bit USB bootloader version

8-bit Pinguino USB bootloader has been updated to version 4.12 with among others, reset source detection. Please note that the bootloader behaves now differently from previous versions :

  • The user application starts without any delay on Power-on Reset
  • The bootloader starts only if Reset button has been pressed
  • The bootloader mode stays on until a program has been uploaded
  • the led blinks at high frequency

All .hex files are available on the SVN server.


PINGUINO32-DIY is ready !!

Pinguino32-DIY is now fully functional. The board is working with its own HID boot loader.
We have now some work to do to incorporate this board in the Pinguino IDE. The job should be done this week and we should propose a new version of the IDE next week-end !!
At this moment,’GENERIC250F128′ works with a 8 Mhz crystal for a finally system frequency of 40 Mhz. The goal is to make it work with the internal oscillator.

All the files can be downloaded on the google code area of the project. Design has been made with KICAD. The compressed file contain:
– KICAD design to build the board
– HID bootloader to be burned to the chip
– a simple application program to be used to test upload with ubw32

This design is published as GPL and you are free to build it, modify it and of course improve it. It is pin to pin compatible with the PIC32MX220F032B wich can be used with the same bootloader.
We are proud to propose this board as ( probably ) the first 32 bits home-made system.
With this board, Pinguino IDE keep is DIY spirit !!

The Development Team……

Pinguino X.3 !!

PinguinoX.3 is now available in the download area for both Linux and Windows computer.
With the help of all the users and the developers team, many improvement have been added to make Pinguino a better development environment.
Still in Beta, as usual, but to be improved with your remarks, critics, suggestions…..
Many thanks to the users,
Congratulations to the development team:

  • Regis Blanchot
  • Marcus Fazzi
  • Jesus Carmona Esteban
  • Alfred Broda
  • Yeison Cardona
  • Henk Van Beek
  • Björn Pfeiffer
  • Alexis Sanchez

Download revision 381 on website.

PIC32-PINGUINO is here !!

Hi guys,

I just received the new Pinguino 32 bits board !! This board will be the main support board for Pinguino32X development…. Designed and Built by OLIMEX for the Pinguino community. It have a lot of interesting possibilities:
– PIC 32MX440F256H at 80 Mhz,
– RTC already on board ( crystal + capacitor ),
– LIPO charger,
– wide power supply ( 9-30 VDC ),
– noise free,
– UEXT connector,
– shield compatible……
And a lot of other great features..

We are working hard to publish the next release of Pinguino IDE soon.
The Changelog is now a book !!
A team is working on 8 bits improvements, another on 32 bits boards and GCC. The powerful of this 32 bits system should be soon available as easy as development is for 8 bits systems.
Thanks again to all the contributors, developers, users.


Pinguino CDC and Processing

Hi guys,

On linux, we have some problems to use the Serial object to communicate with Pinguino CDC.
Unfortunately, the RXTXbin module of JAVA don’t recognize the /dev/ttyACM0 port.
I found a solution to fix this problem, and a simple working example is detailed here.

Create a symbolic link from /dev/ttyACM0 to a more popular name for a serial device ( i chose /dev/ttyS20 )

sudo ln -s /dev/ttyACM0 /dev/ttyS20

Now the Pinguino side of my fantastic application !!

// Pinguino cdc with processing
// Jean-Pierre Mandon 2010

unsigned char i;

void setup()
for (i=0;i<4;i++)

unsigned char receivedbyte;
unsigned char rxstr[64];

void loop()
// Use the run led to check if a terminal is connected
else PORTAbits.RA4=0;

// receive a string from the USB uart and send it on the uart
if (receivedbyte>0)
rxstr[receivedbyte]=0; // to make received character(s) a string
switch (rxstr[0])
case 'S':switch(rxstr[1]) // SET
case '0': digitalWrite(0,HIGH); // Pin 0 ON
case '1': digitalWrite(1,HIGH); // Pin 1 ON
case '2': digitalWrite(2,HIGH); // Pin 2 ON
case '3': digitalWrite(3,HIGH); // Pin 3 ON
case 'R':switch(rxstr[1]) // RESET
case '0': digitalWrite(0,LOW); // Pin 0 OFF
case '1': digitalWrite(1,LOW); // Pin 1 OFF
case '2': digitalWrite(2,LOW); // Pin 2 OFF
case '3': digitalWrite(3,LOW); // Pin 3 OFF
The processing side assume that /dev/ttyS20 is used as the first serial port:
import processing.serial.*;

Serial myPort;
String port[];
int i;

void setup()
myPort=new Serial(this,port[0],115200);

void draw()
for (i=0;i<4;i++)

void stop()

And now the schematic:

Have fun