Skyduino:~#
Articles
chipKit, programmation, test

[Test] Pinguino (« Arduino like » sur base PIC32)

Bonjour tout le monde !

Aujourd’hui je vais vous présenter la carte pinguino dont beaucoup de monde dit qu’il s’agit du prochain « arduino killer ».
Dans cet article je vais m’intéresser à la version pinguino-OTG.

Comme d’habitude la carte est dans une boite d’olimex aux couleurs vive, aucun risque de la perdre sur son bureau 🙂

Pour éviter les décharges électrostatique la carte est emballé dans un sachet anti ESD, pas de mousse ou de cales en carton, toujours dans l’optique « pas chère mais complet » d’olimex.

La pinguino est une carte qui reprend la philosophie et le form factor arduino, en y apportant un bon coup de jeune en utilisant un PIC32 (comme sur les cartes chipkit).
En autre la pinguino possède un port usb, un cpu 32bit, et plein de truc sympa !

La pinguino-OTG est propulsé par un PIC32MX440F512H qui posséde les caractéristiques suivante :
MCU Core
80MHz, 1.56 DMIPS/MHz, 32-bit MIPS M4K Core -> Cpu 32bits à 80MHz, autant dire une bête de calcul !
USB 2.0 On-The-Go Peripheral with integrated PHY -> Usb "OTG" utilisable pour créer des périphérique usb natif
Dedicated DMA Channel for USB OTG
5 Stage pipeline, Harvard architecture
MIPS16e mode for up to 40% smaller code size
Single cycle multiply and hardware divide unit
32 x 32-bit Core Registers
32 x 32-bit Shadow Registers
Fast context switch and interrupt response

MCU System Features
256K Flash (plus 12K boot Flash) -> 2560Ko de flash pour stocker les programmes dont 12Ko pour le bootloader
32K RAM (can execute from RAM) -> 32Ko de mémoire ram avec la possibilité d'exécuter du code depuis la ram (bien que ce soit une architecture de type harvard)
4 Channel Hardware DMA Controller
Flash prefetch module with 256 Byte cache
Lock instructions or data in cache for fast access
Programmable vector interrupt controller

Analog Features
Fast and Accurate 16 channel 10-bit ADC, -> 16 Convertisseur analogique numérique 10bits pouvant convertir une tension à 1MHz
Max 1 Mega sample per second at +/- 1LSB, conversion available during SLEEP & IDLE

Power Management Modes
RUN, IDLE, and SLEEP modes
Multiple switchable clock modes for each power mode, enables optimum power settings

Other MCU Features
Fail-Safe Clock Monitor – allows safe shutdown if clock fails
2 Internal oscillators (8MHz & 31KHz)
Hardware RTCC (Real-Time Clock and Calendar with Alarms) -> Module heure/date intégré
Watchdog Timer with separate RC oscillator
Pin compatible with 16-bit PIC® MCUs

Restez calme, je sais c’est écrit en anglais, je vais détailler les points intéréssant de suite 😉

La pinguino-otg possède un port usb dit « on the go », en gros il est possible de faire des applications usb 2.0 native sans rien avoir à câbler.
Il suffit de brancher un câble mini usb, de compiler la librairie usb de microchip et c’est bon !
C’est un point important en comparaison des cartes chipkit qui utilisent un FT232 de FTDI pour créer un port série virtuel, avec la pinguino pas de FT232 c’est l’usb natif qui fait tout 😉

A noter sur le coté, le bouton permettant de lancer le mode bootloader, et les deux led librement utilisable par l’utilisateur.

L’alimentation de la pinguino a été revu et corriger par olimex, l’alimentation de la carte « pinguino by olimex » est bien plus performante que celles des cartes arduino classique et assimilé.
En autre elle a été conçu pour éviter au maximum les parasites sur les broches analogiques et pouvoir passer en mode « éco » dans le cadre d’une utilisation sur batterie.
Il est possible d’alimenter la carte via le port usb, la prise jack, ou via une batterie lipo/lion.

La pinguino possède aussi un connecteur ICSP permettant de connecter un programmateur/débuggeur de pic et ainsi de pouvoir programmer/débuggeur la pinguino directement depuis Mplab.
Elle possède aussi un quartz 32KHz pour le module RTC « Real Time Clock » hardware du PIC32, il est donc possible de conserver une date/heure à jour dans la ram du PIC32 tant que l’alimentation est ok.

Comme je le disait plus haut, la pinguino reprend le form factor arduino UNO et permet donc d’utiliser des shields arduino.
Mais elle possède aussi une deuxième série de connecteurs au pas 2.54mm classique, ce qui permet de fabriquer ses propres shield avec une « bête » plaque à trou de prototypage.

A noter aussi les deux entrées analogique « bonus » A6 et A7.

Comme toute les cartes fabriqué par olimex la pinguino comporte un port UEXT permettant d’ajouter sans câblage des fonctionnalité supplémentaire à la pinguino, via des modules appelé « MOD », comme par exemple le MOD-IR permettant d’émettre et de recevoir des trame infrarouge de télécommande, etc …

Le skillscreen de la pinguino est à la fois jolie et utile.
Il permet de savoir ou se trouve les broches, ainsi que leurs nom, mais aussi l’état par défaut des jumpers de la carte.
Ça dénote bien le travail de conception qu’il y a eu derrière la pinguino.

La pinguino comporte aussi un slot pour carte micro SD, utilisable pour stocker des données ou pour tout autre usage.
Cela peut être trés utile dans le cadre d’un projet de dataloger par exemple.

Comme je le disait plus haut le skillscreen n’est pas que décoratif, il permet aussi de savoir ce que fait chaque jumper de la carte et son état par défaut en sorti d’usine.
Pour le bricoleur lamba ça peut sembler inutile mais il fallait y penser !

Parlons un peu du logiciel, l’ide pinguino est écrit en python, ok, mais que l’on soit sous windows ou sous linux il faut installer un bon nombre de librairies pour qu’il ce lance.
Déja le fait d’avoir à installer des librairies m’as posé probléme, il a fallut que je bricole mon installation python pour que WxWidget daigne s’installer et ne pas me sortir une erreur de DLL manquante à chaque lancement …

Autre problème, l’ide est encore en beta (en grosse beta même) il y a pas mal de bug, j’ai pour le moment pu uploader un sketch « blink » sur ma pinguino, mais depuis hier plus rien, impossible de compiler le moindre sketch j’ai une erreur « fichier introuvable » suite à une fonction self.link(), j’ai regarder un peu le code autour et j’ai pas pu trouver ou était le probléme …
J’avais donc dans l’idée d’utiliser l’ide arduino de chipkit mais celui ci ne supporte que le PIC32MX460 et non 440 … Je vais donc devoir chercher le pourquoi du bug et comment le résoudre …
C’est dommage, l’hardware est vraiment sympa mais le software ne suit pas vraiment.

Mais tout n’est pas noir ou blanc, il faut quand même souligner le travail que fournit l’équipe pinguino en utilisant uniquement des librairies/compilateur open source, et à défaut concevoir leur propre toolchain.

Je vais donc tenter demain de refaire marcher l’ide, j’ai surement du faire quelque chose de travers, en tout cas cette carte pinguino a un potentielle trés intéressant et je devrai pouvoir faire des choses trés sympa avec.

Discussion

13 réflexions sur “[Test] Pinguino (« Arduino like » sur base PIC32)

  1. merci =) mais quels differences entre la version OTG et la version « normale » ?

    Publié par zilators | 1 mars 2012, 16 h 11 min
  2. l’USB OTG permet d’être maitre ou esclave sur le même port. Perso, je l’utilise souvent comme maitre seulement, pour pouvoir connecter une clé USB à mon montage et y écrire un reporting sous forme d’un petit fichier.

    Publié par Sven | 3 juillet 2012, 0 h 04 min
  3. J’ai bien lu : ADC 10-bits à 1 mhz ??! Y’a moyen de se faire un oscillo sympa nan ou jme trompe ??

    Publié par batto | 18 octobre 2012, 10 h 41 min
    • Faire un « vrai » oscilloscope non, par contre faire une sorte de Xoscillo amélioré oui c’est totalement possible 😉

      Publié par skywodd | 18 octobre 2012, 14 h 05 min
  4. bonsoir, est il possible de rajouter simultanément plusieurs cartes MOD sur le connecteur UEXT?

    Publié par agt | 26 octobre 2012, 20 h 39 min
  5. combien le prix?

    Publié par rabah | 13 novembre 2013, 22 h 53 min

Rétroliens/Pings

  1. Pingback: MIPS | Pearltrees - 19 septembre 2016

  2. Pingback: OLIMEX | Pearltrees - 2 octobre 2016

Skyduino devient Carnet du Maker

Le site Carnet du Maker remplace désormais le blog Skyduino pour tout ce qui touche à l'Arduino, l'informatique et au DIY.