Search in Pinguino World !!

Monday, December 27, 2010

Pinguino beta 9-05 is online !!

Hi guys,

Pinguino beta 9-05 is now available for download. You can download this release on Hackinglab website.
As usual, a lot of improvements were made in this beta, this is the changelog:
- new icons set (regino and miniregino)
- themes management
- new functions (Save/Save as, getCodeSize, ...)
- config. file (file history, last window position and size)
- regression test shell for the example folder ( only for linux )
Libraries :
- stdlib.c (light printf implementation)
- serial.c (added Serial.printf function)
- pwm.c (added new functions PWM.setfrequency, PWM.setdutycycle and PWM.setpercentdutycycle)
- sound.c (functions Sound and Play)
- 1wire.c (1wire.reset, 1wire.readbit, 1wire.writebit, 1wire.readbyte and 1wire.writebyte)
- 18b20.c (DS18B20.Read, DS18B20.MatchRom, DS18B20.ReadRom, DS18B20.Configure, DS18B20.Find, DS18B20.GetFirst, DS18B20.GetNext and DS18B20.crc)
Examples :
- serial/serialprintf.pde
- serial/getkey.pde
- pwm/sound/mysound.pde + picture
- 1wire/18B20/temp18b20.pde + + pictures

Many thanks to the developers of this release:
Regis ( Paintitblack ),
Marcus ( Annunakin ).

The beta testers helped a lot to find bugs:
Walter ( Walterleonardo ),

Remember that the pinguino road map is still online. You can write in this document everything you think useful for Pinguino. We use this paper to work on the next version.

The next version will be 'Pinguino32X'. We are currently working on this major release with PIC32 support.

Have fun, a nice Christmas ( too late !! ) and a happy new year !! ( too soon :-)

Pinguino Emperor

In the last issue of Servo-Magazine, Fred Eady wrote a paper on Pinguino. Fred designed a Pinguino compatible board called Emperor which is sold online by EDTP. He is now working on the 32 bits board wich will be the support for Pinguino32X first release.

Discover this article on Servo Magazine Website.
More info on the Emperor board on Fred website.

Tuesday, December 14, 2010

Pinguino Beta 9-05 Preview

Pinguino beta 9-05 is almost ready. Changelog is very long but you can see here some of the new functions.

Have fun

Pinguino IR Radar

Hi guys,

Marcus is still active, working on a great project with Pinguino. He built this radar with an IR sensor and an IR LED. The software is coded with QT and the sensor can see at 360° with a small stepper motor. Range is about 20 cm to 120 cm.

The software

The sensor

The prototype

More info soon on Marcus Website.

Sunday, December 5, 2010

A nice machine !!

I love this nice machine !!
I would like to have one for chistmas...............

See it and a lot of fun design on Pinguino Madrid

Thursday, November 25, 2010

Pinguino Contest is Open

Hi Guys,

Pinguino contest is open !!
This contest was initiated by ARDE and Boops.

We are pleased to announce that Microchip is sponsoring this contest. So, if you want to be the winner, you need now to fill in the form to join all the competitors.

What can you win ?

First prize: the best !!
PicKit3 programmer
Pinguino 2550 ARDE on a breadboard
GPS development board

3 blank 18F4550
Second prize the best optimisation !!

Pinguino 2550 ARDE

Solar cell 5V 250 mAH

3 blank 18F4550
3 blank 18F2550
Third prize: Special prize of the jury !!

Pinguino 2550 ARDE

3 blank 18F2550

Everybody can join us for this challenge. More info will be published soon on
For spanish translation and complete rules of the contest, please visit this link.

Have fun !!

Tuesday, November 16, 2010

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

Monday, November 15, 2010

Pinguino Board available in USA

Pinguino 4550 is now available in USA at EDTP store.

You can contact Fred for more info.


Sunday, November 14, 2010

Pinguino32X pinout

This is the first pinout for Pinguino 32 bits. The digitalw.c library is in progress.
74 I/O on this board !!

Monday, November 8, 2010

Pinguino Contest

Yet another event organised by ARDE and Boops. This spanish robotic association is very active and want to boost the development of Pinguino.
A Pinguino Contest is now open !!
If you plan to build a nice robot or drive your home with a Pinguino, it's time to fill the form on boops website.

The contest rules are in spanish but will be soon translated to english.

Boops blog with complete rules

Thursday, November 4, 2010

Pinguino drive a led display.

Olivier drive this led display with a 18F2550 Pinguino.
Maybe this library could be incorporated in the next IDE version with his support.

I would like build a such display for Christmas !!

More info on Olivier website.

Wednesday, November 3, 2010

PartyBot !!

Jesus and ARDE designed this nice robot to show robotic technology in Campus Party.
Pinguino is used as the brain.
Their wiki is well documented with nice 3D view.

Tuesday, November 2, 2010

Pinguino PIC32

Now development is really started on PIC32. We are working with the UBW32 board and Brian ( designer of this board ) like the idea of Pinguino with his UBW32 board.
This board is cheap and can be purchased on the net.
We are developing some libraries to release Pinguino with PIC32 support. At the beginning, only digital I/O and serial will be implemented, some peripheral libraries will be easy to port ( servo, LCD ).

Monday, November 1, 2010

Pinguino as a real time clock

The timer 1 can be used as a real time clock. I wrote this simple example to test this function.
It will be incorporated to the tutorial website.

and this is the code to start the clock and display the result on the serial:

// Real time clock with a 18F2550 and Pinguino
// Jean-Pierre Mandon 2010
byte hours,mins,secs;
void setup()
// configure TIMER 1 to be used as RTCC

// init current time

// init interrupt for RTCC module

// init Serial to display time
Serial.print("Pinguino clock\r\n");

// timer 1 is interrupt driven
void UserInterrupt()
if (secs==60)
if (mins==60)
if (hours==24) hours=0;

// The main loop display time on a serial terminal
void loop()
if (hours<10) Serial.print("0");
if (mins<10) Serial.print("0");
if (secs<10) Serial.print("0");

Monday, October 25, 2010

Pinguino beta 9-04

Pinguino beta 9-04 is now online with CDC support !!

As usual, i didn't write a documentation :-) but a cdc example is in the
example folder.
What is CDC ?
A CDC is an USB serial port, on windows it will appear in the system as a
virtual com port ( COM7 for example ),
in linux, it will appear as a /dev/ttyACM0 device ( or /dev/ttyACM1 if 0
exist ).

Then you can use this device with a serial terminal ( hyperterminal,
teraterm on windows, putty, gtkterm on linux ).
Speed is 115200 bauds, 1 stop bit, no parity.

In Pinguino, you can use CDC.print(string,length) and return the length of the received string.;

CDC is a non blocking device, USB is managed with interrupt, so you can use
all the functions in the loop.
No initialisation is needed.

I tested this code on:
windows XP,
windows 7,

With Linux be careful !! on some distribution, the modem manager send an
initialisation string to a new connected ttyACM device.
This string is:

i am working on a udev rule to stop this initialisation with Pinguino.
You can stop the modem manager if it is a problem
sudo killall modem-manager

Hope this code will be useful for the Pinguino community.
I wait for your report and suggestion.

Thanks to all the alpha-tester :-) of this release:

Wednesday, October 13, 2010

Windows 7 Boops package

Javi from spain ( Boops ) tested Pinguino windows 7 64 bits.
He built a package with everything needed to install Pinguino with Windows 7 32 or 64 bits.
This package is available on his website:

This is the direct link to the Pinguino/windows 7 post.

Thanks for this test Boops.

Tuesday, October 5, 2010

Pinguino and Windows 7

After a lot of problem with windows 7, i decided to package a new version compatible with this OS.
This is the 9-03 version of Pinguino. What is new in this version ?
  • some minor bugs were fixed ( locale and preprocessor )
  • Windows version uses the original python uploader
A complete tutorial, on the tutorial website explain how to install properly pinguino on windows 7.

Pinguino beta 9-03 is in the download area.

Monday, September 20, 2010

Pinguino 9-02

Hi guys,

Due to a bug in the serial module, Pinguino beta 9 is updated.
( Thanks Alejo for this useful report ).
You can download the last release ( beta 9-02 ) here.

Sunday, September 12, 2010

Pinguino Kidules

DIDEL S.A is a supplier of robotic systems and teaching modules. This company, from switzerland build and distribute a lot of nice tools. The Kidules are modules that you can connect each other. A Kidules module is now compatible with Pinguino, it is built with a PIC 18F2550.

DIDEL S.A website
Kidules documentation

Thursday, September 9, 2010

Robotic Arm

Juan from Venezuela tested the servo library for his robotic arm. This library, written by Jesus Carmona is really easy to use and useful for a lot of different tasks.

Juan Blog.

Saturday, September 4, 2010

Pinguino 2550 with Fritzing

Fritzing is a design software for electronics. I love this software to design small circuits on a breadboard.
Now it is possible to use Fritzing with Pinguino board. I designed this component and incorporated it in Fritzing to draw nice Pinguino breadboards......

The Pinguino Fritzing component can be downloaded here.

You can learn everything about Fritzing here.

Saturday, August 28, 2010

Pinguino as a self replicating device !!

Self Replicating Pinguino on a breadboard
Hi Guys,

Self Replication
Self-replication is any process by which a thing will make a copy of itself

Now this is a property of Pinguino. This code allows you to copy the bootloader of your Pinguino in a new blank ( or not ) chip.
I tried it with a 18F2550, i don't know if it works with a 18F4550 but it should works.

What do you need ?
- 3 transistors
- 2 LED
- some resistors
- an external 12Vcc power supply. ( 12Vcc from the computer is OK )

I think i will update this code later to use Pinguino as a real PIC18 programmer.

How many Pinguino child will you build ?


Link to the schematic
Link to the .Pde file

Friday, August 27, 2010

Pinguino Thailand

Yet another member in our community !!
Pinguino Thailand is Online......

This is a very good news, Welcome

Graphic LCD on Pinguino

Marcus, the king of display, made this' arduino compatible' library for Pinguino.
This library, managed by the library user tool of beta 9, can display pictures and text with a lot of different fonts.
I plan to incorporate it in beta 9-02. The development is very fast now and it's time to launch new release more often.

See all Marcus work on his website.

Tuesday, August 24, 2010

Pinguino Windows Installer

Yet another great software from Pinguino Madrid.

Walter made an installer for Pinguino Windows for Beta 9-01.

Try it !!

Pinguino installer beta 9

NEWS from PinguinoVE

Hi Guys,

Today i received a lot of good news from Joan Espinosa. This Venezuelian guy is very active and work around Free software, Free hardware and of course Pinguino. Do you remember that Joan initiated the first version of the multi-langage IDE ?
Now Joan and his team have a lot of projects around Pinguino. They are testing a .deb package and i will give you the link when it will be ready for testing.
PinguinoVE has now its own website:
And this is his Picasa album where you can see the team PinguinoVE:

Nice to have news of you Joan, tell us when this Deb package is ready !!

Monday, August 23, 2010

Pinguino XBEE

Walter from Pinguino Madrid built this Pinguino XBEE.
Maybe this is the starting point of our next zigbee module for Pinguino.

Great job walter...

Pinguino Beta 9

Hi Guys,

Pinguino beta 9 is available in the download area.
Many thanks to all the contributors of this new release.

This is a major version with a lot of improvement.
I will write some document to explain how to develop users libraries
( it's easy with beta 9 ) and maybe changes from the last version.

Have fun with this new version.


Monday, August 16, 2010

Sphynx Blog

Sphynx ( Jesus ) built this fantastic servo library for Pinguino. He documented it on the Pinguino wiki and fixed some bugs in the delay function.
See all his work on Pinguino and electronic on his blog.

Thanks Jesus.

Saturday, August 14, 2010

Pinguino New GUI

This is the new GUI of Pinguino. GUI is finished and i am working on libraries.
Servos library from Sphynx is already available, now working on the sdcc 2.9.0 integration in Pinguino.


Un saludo a ARDE

ARDE is one of the active community in the Pinguino project.
it's a real pleasure discover everyday more and more users and contributors in Spain coming from this very active association.
Thanks to all.
I am happy to continue this great adventure with all those spanish guys.

link to ARDE website.

LCD character Generator

Hi guys,

Marcus built this nice LCD character generator for Pinguino. You can build your own set of character and generate the Pinguino syntax.
Great work Marcus.

See it on Marcus website.

Thursday, July 15, 2010

Pinguino Workshop in Campus Party Valencia

Benoit will animate a workshop with Pinguino in Campus Party Valencia. The theme of this workshop is 'Home Hacking and Pinguino'. We will show how to hack a Linksys router (WRT54GL), connect it to Pinguino with a simple level converter and drive it with LUA and our new libezV24 binding for LUA.
Campus Party is a great event and a nice place to show what is possible. All the contributions will be welcomed.

Benoit website
Campus Party website

Pinguino display

Hi Guys,

Herbert built this nice tetris game with Pinguino. This design is very cool, and i love his propeller display. See all his Pinguino work on

Saturday, May 22, 2010

Pinguino Madrid

Hi guys, i am pleased to announce that 'Pinguino Madrid' is now online. This blog, initiated by Walter is a spain place to learn a lot of Pinguino related things.
Walter did a great job with Pinguino, Fonera and electronic.

Wednesday, May 5, 2010

LUA USB terminal

Yet another small software to check USB communication with Pinguino.
I wrote this command line tool for Linux to test USB communication. It can be used as a serial terminal to check process value or text sent from and to Pinguino.
Originally, it shall be made with Python, but due to a problem with Python thread and Libusb, i tested it with LUA, and it works !!
It can be used both on a computer or on an embedded system ( FONERA 2 for example ).

Everything to install and use it is explained on the tutorial website in a new tools chapter.

Saturday, May 1, 2010

Pinguino Beta 8

Pinguino beta 8 is available in the download area, this version is multi-language.

A lot of contributors helped me for this version:

Joan Espinoza initiated the pinguino translation pack
Wim Heirman ( german translation )
Marin Purgar ( croatian translation )
Vasile Guta Ciucur ( Romanian translation )
Raul Zanardo ( install shell on Linux )
Ivan Ricondo ( Pinguino tutorial )
Furri ( windows debugging during Campus Party )
Benoit Espinola ( MAC OSX debugging )

I probably forgot people but this community become increasingly large !!

Hope this new version will be useful............

Friday, April 23, 2010

LUA with Pinguino

This new tutorial explain how to use USB communications with LUA. This example was both tested on a computer an on a FONERA 2.0.
My goal is to use LUA to make a USB terminal.

See this tutorial on the tutorial website.

HOWTO use the run led !!

The Run led of Pinguino can be used as a normal led. This output is not defined in the list of pins, but you can use it as described below:

#define RUNLED PORTAbits.RA4

void setup()

void loop()

Sometimes it could be useful to use it as a general purpose led.

Zigbee shield for Pinguino

I work on a zigbee shield for Pinguino. I chose the Microchip MRF24J40MA because it is very cheap ( less than 10€ in France ). I designed this board to convert 5V signals to 3,3V.
Now i am working on the driver, i wrote a soft SPI library for Pinguino. Maybe Pinguino will be used as a remote control with this module.

Sunday, April 18, 2010

Still in Madrid :-)

I'm still in Campus Party today. All flights are cancelled from Madrid to Marseille, so i take this time to post on the blog.
Campus Party is a really nice event. I met a lot of people, some of them are Pinguino users and it's a chance to work with them for those 4 days. Others are just curious about our project, i tried to explain what are the differences beetween this project and Arduino and what are the advantages.
I received a nice Pinguino from Javi who is one of the ARDE Pinguino designer. I spent most of my time to interface LUA and Pinguino and speak with Paco (Furri) who is a very enthusiast user.
I never participated in a so big event in the past, but the Campus Party organisation is very professional and everything is done to let you spend your time to speak and exchange with people.
I will like that events like this one exist in France.
You can see some of the pictures of Campus Party and Madrid here.

So, thanks to everybody and congratulations to Campus Party.

Monday, April 5, 2010

Pinguino SMD

Yet another smd design from Spain............

Sunday, April 4, 2010

Just for fun !!

I designed this special pinguino to test a technic on plexiglass. It works, but i need to wait my order of USB connector to test it :(

It could be a way to do new objects.

Saturday, April 3, 2010

Hidden function in Pinguino

I am working with a GSM modem and Pinguino. To send command to the modem, i used the UART and AT commands. The problem was to set a correct time out when receiving answer from the modem. I wanted to use the millis instruction, but i was afraid by an overflow of the time variable.
So i decided to use a hidden variable in Pinguino, _millis. This variable is used in the arduinodelay library and is incremented every milli second. I copied this example of my code:
 #include <string.h>

unsigned char caractere;
unsigned char chaine[50];
long tempo;
unsigned char index;

unsigned char gsm_echo(unsigned char state)
if (state) Serial.print("ATE1\r");
else Serial.print("ATE0\r");
while (_millis<100)
if Serial.available()
if (strstr(chaine,"OK")!=0) return 0;
else return 1;

void setup()

void loop()
if (gsm_echo(0)==1) goto debut;
while (1);

The millis instruction in the setup function is just used to initialise the library.
_millis variable is already declared in the arduinodelay library.

Hope it will be useful for everybody.

Thursday, April 1, 2010

Pinguino Forum is open !!

Jeremy started a Pinguino Forum on his website. Yet another welcomed contribution and another way to share ideas, libs and many useful things for us.

Thanks to Jeremy.

Welcome to all users, sign up here.

Wednesday, March 24, 2010

Please bookmark this link !!

Sergio Alvarez from Colombia did a great job on his blog. A lot of useful example to build and use Pinguino:
- a step by step description to build Pinguino on a test board,
- What is sometime troobleshoothing with windows,
- How to use an I2C ultrasonic range finder ( this one could be integrated in the pinguino tutorial with sergio acknoledgement )

and a lot of well documented things.

And maybe a good way to learn spanish !!

Wednesday, March 17, 2010

Simple example with Processing

I wrote this simple example to help users to associate Processing and Pinguino.
Communication is managed by Stephane Cousot Library and USB link.
Stephane example program is loaded in the Pinguino with the IDE.
A led is connected on PIN 0 of Pinguino.

// How to blink a led on PIN 0 with processing
// Jean-pierre Mandon 2010

import hypermedia.pinguino.*; // import library

Pinguino board; // pinguino object

void setup() {

size( 380, 180 ); // size the window application
board = new Pinguino( this ); // connect to Pinguino board


void draw() {


if (board.digitalRead(0)==Pinguino.LOW)
board.digitalWrite(0,Pinguino.HIGH); // PIN 0 = 1
{ board.digitalWrite(0,Pinguino.LOW); // PIN 0 = 0


Stephane processing Library can be downloaded here.
The pinguino side program is here.

Sunday, March 14, 2010

Pinguino and PERL

Marin Purgar wrote a perl script to drive a pinguino. It is very simple and well documented on his website.

Saturday, March 13, 2010

Pinguino Team Croatia

Marin Purgar from croatia sent me pictures of his design.

Marin want to use Pinguino to drive a CNC machine.

Great design, congratulations Marin !!

Saturday, March 6, 2010

Ham radio and Pinguino

EI9GQ built a VFO and used Pinguino to drive LCD.

EI9GQ pusblished a paper in the the november 2009 and march 2010 issue of RADCOM, The Radio Society of Great Britain Members' magazine. I'm pleased to know that Pinguino is used in ham radio. A long time ago, i was F6HOJ !!

73's EI9GQ...............

Automated installation on Linux

Raul Zanardo from Brazil wrote a shell script to install Pinguino on Linux.
This script was used on Ubuntu 9.10. It download Pinguino on the website, create a folder, copy rules files and create a Microchip group.
So you can use pinguino as is with good rules for the USB device.

Congratulations Raul.

Installation script.

Yet another design for Pinguino !!

Vasile designed a new 18F4550 board with external power supply.

He used Kicad to draw this board. He's currently testing this version and files will be available soon.
Nice job Vasile.

Vasile website.

Pinguino Venezuela

Joan Espinoza started a great project to develop Pinguino in Venezuela. This is the link to the Website.

Joan presented his project during the DevCamp event in february 2010.

His goal is to develop and promote Pinguino project for electronics, programmers and students in Venezuela. This community offer help to incorporate a multi-support language for the Pinguino IDE.

Thanks Joan and all Venezuelan users, this is yet another initiative to expand use of Pinguino and make it simpler for everyone.

PinguinoVE on twitter.
PinguinoVE website.

Wednesday, February 24, 2010

How to use PWM ?

Ivan wrote a tutorial to explain how works PWM on Pinguino.

Follow this link to learn about PWM.

Pinguino in Danemark....

Benoit did a new version of Pinguino in Copenhagen.
This design prove that Pinguino works in the snow !!

Thursday, February 18, 2010

Drive Servo with Pinguino

This guy did a great job with Ivan Ricondo servo library. This library will be integrated in the next version of Pinguino.

Sunday, February 7, 2010

Pinguino in Spain !!

Ivan Ricondo did a great job with its own version of Pinguino. Yet another design, and a lot of example for driving servo and RGB led.

Visit Ivan website here.