Search in Pinguino World !!

Wednesday, April 22, 2009

Pinguino IRC channel

Pinguino has its own IRC channel on Freenode. Channel is Pinguino.
Thanks to Alejo from Locus Sonus lab.

Saturday, April 4, 2009

Pinguino with 18F4550

This is my first test of Pinguino with a 18F4550.


What are the differences with the 18F2550 version:
- 30 digital input/output, 13 input can be used as analogic input
- 470 resistors suppressed on the outputs,
- Run switch was suppressed, run is automatic after 5 seconds,
- Run can be manually controlled with a switch,
Processor will be defined in the IDE by a radio button or #define directive in the code.

The new bootloader will be compatible with the 18F2550 board version 1.
The development environment will be compatible with all software already written.

This modifications will be integrated in the beta 6 version. This version should be available april 30th. Other improvements in this version are:
- full support of UTF8 in the source, comments can be redacted in many langage.
- corrected some bugs in comments ( keywords are not accepted in comments for beta 5 ).
- case sensitive help in the editor.

Monday, March 16, 2009

Processing library for Pinguino

Last week, Stéphane Cousot wrote a basic library for communicating between Processing and Pinguino. This the first release but it was tested and is fully functional. Stéphane made a package with a processing sketch and the Pinguino program associated. You can download this package on Stéphane website.
This library is the result of our work with Douglas Edric Stanley. The goal is to build a USB interface wich can be driven by many different software ( Processing, Python, Pure data, java ... ).
Pinguino is the hardware part of this project.
Douglas Edric Stanley Blog.

Sunday, March 15, 2009

8 PWM output on Pinguino !!

This is an interrupt code example. It show how to build 8 PWM output on pin 0 to 7 with the timer 1. The PWM frequency is about 400 Hz. With the 2 analogWrite output, you can now drive 10 PWM outputs and this code can be adapted to drive 16 PWM outputs.
Applications are motors, lights and others analogic outputs.

// How to use interrupt on Pinguino
// add 8 analog outputs ( PWM ) to your Pinguino
// can be extended to 16
// Jean-Pierre MANDON 2009

08/04/2009
When copied to the blog, this file is corrupted.
You can download the source here.

CodeBlocks model Released !!

CodeBlocks model for Pinguino released to be conform to beta 5 of the IDE.
The new file can be downloaded here..........

How to use Interrupt with Pinguino......

With beta 5 you can use interrupt in a Pinguino program. This is a simple example to blink a led with timer 1. Nothing to do in the main loop because level of the led is changed by the interrupt routine.

// How to use interrupt on Pinguino
// simple example blink a led with timer 1
// led is connected on output 0
// Jean-Pierre Mandon 2009

void UserInterrupt()
{
// timer 1 interrupt flag in register PIR1
if (PIR1bits.TMR1IF)
{
// reset interrupt flag
PIR1bits.TMR1IF=0;
// reverse state of pin 0 ( blink )
digitalWrite(0,digitalRead(0)^1);
}
}

void setup()
{
// led is connected on output 0
pinMode(0,OUTPUT);
// timer 1 configuration
// you can write T1CON=0xB1; or
// timer1 register is 16 bits
T1CONbits.RD16=1;
// clock source for timer 1 is derived from clock
T1CONbits.T1RUN=0;
// prescale value 1/8
T1CONbits.T1CKPS1=1;
T1CONbits.T1CKPS0=1;
// timer 1 oscillator is shut off ( internal clock )
T1CONbits.T1OSCEN=0;
// T1SYNC is not used ( internal clock )
// timer clock is internal clock ( Fosc/4 )
T1CONbits.TMR1CS=0;
// timer 1 is On
T1CONbits.TMR1ON=1;
// FOSC is 48 Mhz => Internal clock = 48 Mhz / 4 = 12 Mhz
// clock period is 83 nS
// prescale for timer 1 is 8 => clock period for timer 1 is 667 nS
// timer 1 is incremented every 667 nS
// timer 1 is a 16 bits register, it will overflow every 667nS*65536 = 43.6 mS
// when timer 1 overflow it generate an interrupt
// Interrupt configuration
// enable interrupt for timer1 in register PIE1
PIE1bits.TMR1IE=1;
// Here you can write INTCON|=0xC0; or
// enable peripheral interrupt
INTCONbits.PEIE=1;
// global enable interrupt
INTCONbits.GIE=1;
// now an interrupt will be generated by timer1 every 43,6 mS
}

void loop()
{
// nothing to do in the main loop :-)
}

Sunday, March 8, 2009

beta 5 for MAC OSX......

MAC OSX beta 5 version of Pinguino is Here.......

But will be tested tomorrow :-)

Pinguino beta 5 Windows....

The windows packaging of beta 5 is Here........

Pinguino beta 5 Linux is available......

The beta 5 release is online with many new improvements.

- Full support of UserInterrupt
- millis() instruction
- fast analogWrite on output 11 and 12 without affect on the process speed
- standart c variable initialisation
- possible use of user libraries.

You can download this version for Linux here.......

Windows and MAC OS version will be soon available.

Friday, March 6, 2009

Pinguino on a proto-board....



Fabi from Madrid built his Pinguino on a proto-board. Very good idea !!
Maybe we can build a tiny Pinguino on a breadboard :-)
I will try..............