Monday, December 27, 2010
Pinguino beta 9-05 is online !!
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:
IDE :
- 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 + temp18b20.py + pictures
Many thanks to the developers of this release:
Regis ( Paintitblack ),
Marcus ( Annunakin ).
The beta testers helped a lot to find bugs:
Walter ( Walterleonardo ),
Rolf.
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 :-)
Jean-Pierre
Pinguino Emperor
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
Have fun
JP
Pinguino IR Radar
More info soon on Marcus Website.
Sunday, December 5, 2010
A 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
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 !!
Everybody can join us for this challenge. More info will be published soon on www.hackinglab.org.
For spanish translation and complete rules of the contest, please visit this link.
Have fun !!
Jean-Pierre
Tuesday, November 16, 2010
Pinguino CDC and Processing
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++)
{
pinMode(i,OUTPUT);
digitalWrite(i,LOW);
}
}
unsigned char receivedbyte;
unsigned char rxstr[64];
void loop()
{
// Use the run led to check if a terminal is connected
if (CONTROL_LINE) PORTAbits.RA4=1;
else PORTAbits.RA4=0;
// receive a string from the USB uart and send it on the uart
receivedbyte=CDC.read(rxstr);
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
break;
case '1': digitalWrite(1,HIGH); // Pin 1 ON
break;
case '2': digitalWrite(2,HIGH); // Pin 2 ON
break;
case '3': digitalWrite(3,HIGH); // Pin 3 ON
break;
}
break;
case 'R':switch(rxstr[1]) // RESET
{
case '0': digitalWrite(0,LOW); // Pin 0 OFF
break;
case '1': digitalWrite(1,LOW); // Pin 1 OFF
break;
case '2': digitalWrite(2,LOW); // Pin 2 OFF
break;
case '3': digitalWrite(3,LOW); // Pin 3 OFF
break;
}
break;
}
}
}
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()
{
port=Serial.list();
println(port[0]);
myPort=new Serial(this,port[0],115200);
}
void draw()
{
for (i=0;i<4;i++)
{
myPort.write("S"+str(i));
delay(50);
myPort.write("R"+str(i));
delay(50);
}
}
void stop()
{
myPort.stop();
}
And now the schematic:
Have fun
Jean-Pierre
Monday, November 15, 2010
Pinguino Board available in USA
You can contact Fred for more info.
EDTP ELECTRONICS
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
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.
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
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
TMR1H=0x80;
TMR1L=0;
T1CON=0b00001111;
// init current time
hours=12;
mins=0;
secs=0;
// init interrupt for RTCC module
PIE1bits.TMR1IE=1;
INTCONbits.PEIE=1;
INTCONbits.GIE=1;
// init Serial to display time
Serial.begin(9600);
Serial.print("\r\n");
Serial.print("Pinguino clock\r\n");
}
// timer 1 is interrupt driven
void UserInterrupt()
{
TMR1H=0x80;
PIR1bits.TMR1IF=0;
secs++;
if (secs==60)
{
secs=0;
mins++;
if (mins==60)
{
mins=0;
hours++;
if (hours==24) hours=0;
}
}
}
// The main loop display time on a serial terminal
void loop()
{
if (hours<10) Serial.print("0");
Serial.print(hours,DEC);
Serial.print(":");
if (mins<10) Serial.print("0");
Serial.print(mins,DEC);
Serial.print(":");
if (secs<10) Serial.print("0");
Serial.print(secs,DEC);
Serial.print("\r");
}
Monday, October 25, 2010
Pinguino beta 9-04
Pinguino beta 9-04 is now online with CDC support !!
http://www.hackinglab.org/pinguino/download/latestpinguino/
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 CDC.read(string).
CDC.read(string) return the length of the received string.
length=CDC.read(receivedstr);
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,
linux.
With Linux be careful !! on some distribution, the modem manager send an
initialisation string to a new connected ttyACM device.
This string is:
AT+GCAP
AT+GCAP
AT+GCAP
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.
olivier
boops
vasi
sphynx
paintitblack
walterleonardo
pinguinoVE
Wednesday, October 13, 2010
Windows 7 Boops package
He built a package with everything needed to install Pinguino with Windows 7 32 or 64 bits.
This package is available on his website:
www.roboops.es
This is the direct link to the Pinguino/windows 7 post.
Thanks for this test Boops.
Tuesday, October 5, 2010
Pinguino and Windows 7
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
Pinguino beta 9-03 is in the download area.
Monday, September 20, 2010
Pinguino 9-02
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
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 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 ?
Friday, August 27, 2010
Pinguino Thailand
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
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:
http://www.pinguino.org.ve/
And this is his Picasa album where you can see the team PinguinoVE:
http://picasaweb.google.com/fotospinguinove/6toDiaDebian#
Nice to have news of you Joan, tell us when this Deb package is ready !!
Monday, August 23, 2010
Pinguino XBEE
Maybe this is the starting point of our next zigbee module for Pinguino.
Great job walter...
Pinguino Beta 9
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.
JP
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.
JP
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
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
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 http://www.youtube.com/user/heberthbmx
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
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
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
My goal is to use LUA to make a USB terminal.
See this tutorial on the tutorial website.
HOWTO use the run led !!
#define RUNLED PORTAbits.RA4
void setup()
{
}
void loop()
{
RUNLED=1;
delay(500);
RUNLED=0;
delay(500);
}
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 :-)
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
Sunday, April 4, 2010
Just for fun !!
It could be a way to do new objects.
Saturday, April 3, 2010
Hidden function in Pinguino
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)
{
Serial.flush();
_millis=0;
index=0;
if (state) Serial.print("ATE1\r");
else Serial.print("ATE0\r");
while (_millis<100)
{
if Serial.available()
{
caractere=Serial.read();
chaine[index]=caractere;
index++;
}
}
chaine[index]=0;
if (strstr(chaine,"OK")!=0) return 0;
else return 1;
}
void setup()
{
Serial.begin(9600);
pinMode(0,OUTPUT);
digitalWrite(0,LOW);
tempo=millis();
}
void loop()
{
debut:
delay(500);
if (gsm_echo(0)==1) goto debut;
delay(500);
digitalWrite(0,HIGH);
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 !!
Thanks to Jeremy.
Welcome to all users, sign up here.
Wednesday, March 24, 2010
Please bookmark this link !!
- 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
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.
Sunday, March 14, 2010
Pinguino and PERL
Saturday, March 13, 2010
Pinguino Team Croatia
Marin want to use Pinguino to drive a CNC machine.
Great design, congratulations Marin !!
Saturday, March 6, 2010
Ham radio and Pinguino
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
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 !!
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 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
Pinguino in Danemark....
This design prove that Pinguino works in the snow !!
Thursday, February 18, 2010
Drive Servo with Pinguino
Sunday, February 7, 2010
Pinguino in Spain !!
Visit Ivan website here.