Compatibility

=Compatibility Pinguino vs. Arduino=

Pinguino boards can be programmed using a Python IDE which is available as a FREE download.

We use as much as possible the Arduino syntax and we try to supply equivalent libraries.

Some libraries are still under development by the Pinguino Dev. Team (Ethernet & Android ADK) and some others will not be supported due to a lack of time or a lack of interest (SoftwareSerial, Matrix & Sprite). You're welcome to provide these "unsupported" libraries to the community ;o)

Most of the libraries are enriched with specific Pinguino instructions (for example, you can use Serial.printf with the Serial library).

32-bit Pinguino programs are compiled with a C/C++ Compiler which is a GNU-Mips toolchain based on GCC 4.5.2, binutils 2.21 and Newlib 1.19.

8-bit Pinguino uses the SDCC 3.2.1 compiler which is only for C language. As Arduino mainly uses C++ there are necessarily substancial differences versus Pinguino.

Standard

 * ✔ EEPROM - reading and writing to "permanent" storage
 * ✖ Ethernet - for connecting to the internet using the Arduino Ethernet Shield
 * ✔ LiquidCrystal - for controlling liquid crystal displays (LCDs)
 * ✔ SD - for reading and writing SD cards
 * ✔ Servo - for controlling servo motors
 * ✔ SPI - for communicating with devices using the Serial Peripheral Interface (SPI) Bus
 * ✔ Stepper - for controlling stepper motors
 * ✔ Wire - Two Wire Interface (TWI/I2C) for sending and receiving data over a net of devices or sensors.

Communication (networking and protocols)

 * ✔ OneWire - control devices (from Dallas Semiconductor) that use the One Wire protocol.
 * ✔ XBee - for communicating with XBees in API mode
 * ✔ Debounce - for reading noisy digital inputs (e.g. from buttons)
 * ✔ Improved LCD library fixes LCD initialization bugs in official Arduino LCD library
 * ✔ GLCD - graphics routines for LCD based on the KS0108 or equivalent chipset.

Frequency Generation and Audio

 * ✔ Tone - generate audio frequency square waves in the background on any microcontroller pin

Motors and PWM

 * ✖ TLC5940 - 16 channel 12 bit PWM controller.

Timing

 * ✔ DateTime - a library for keeping track of the current date and time in software.

Utilities

 * ✔ PS2Keyboard - read characters from a PS2 keyboard.
 * ✖ TextString aka String - handle strings
 * ✖ PString - a lightweight class for printing to buffers
 * ✖ Streaming - a method to simplify print statements

Pinguino Specific Libraries

 * ✔ Interrupt - Simple interrupt manipulation library (OnEvent, OnTimer0, OnChange, ...)
 * ✔ PWM - Native PWM hardware support
 * ✔ DS18B20 - specific one-wire temperature sensor library
 * ✔ Zigbee - MRF24J40 wireless module
 * ✔ Android ADB - provides an Android class to use Pinguino 32 with devices with Android 1.6 and up
 * ✖ Android ADK - provides an Android class to use Pinguino 32 with devices with Android 2.3.4 and up
 * ✔ RTCC - Real Time Clock and Calendar library
 * ✔ USB - Native USB hardware support with CDC (USB-Serial), host and OTG (On-The-Go) support
 * ✔ PCF8574 - I2C I/O expander library
 * ✔ LCDI2C - for controlling liquid crystal displays (LCDs) with I2C protocol
 * ✔ List - High-level library to manipulate lists
 * ✔ DCF77 - Read and decode the atomic time broadcasted by the DCF77 radiostation
 * ✔ printf - Print formatted data to output (CDC, LCD, Serial, ...)
 * ✖ Charge Time Measurement Unit - Interface with capacitive touch sensors, Capacitance Measurement
 * ✔ Oscillators - change CPU clock frequency on-the-fly
 * ✔ Low-power - Run your Pinguino in low power modes (Watchdog, Sleep and Deep Sleep)
 * ✔ ST7565
 * ✔ PID

Unsupported Arduino Standard and Contributed Libraries (TODO)

 * ✖ Firmata - for communicating with applications on the computer using a standard serial protocol.
 * ✖ SoftwareSerial (NewSoftSerial) - for serial communication on any digital pins (Pinguino32 gives you up to 9 serial channels)
 * ✖ Matrix - Basic LED Matrix display manipulation library
 * ✖ Sprite - Basic image sprite manipulation library for use in animations with an LED matrix
 * ✖ Messenger - for processing text-based messages from the computer
 * ✖ Simple Message System - send messages between Arduino and the computer
 * ✖ SSerial2Mobile - send text messages or emails using a cell phone (via AT commands over software serial)
 * ✖ Webduino - extensible web server library (for use with the Arduino Ethernet Shield)
 * ✖ X10 - Sending X10 signals over AC power lines
 * ✖ SerialControl - Remote control other Arduinos over a serial connection
 * ✖ LedControl - for controlling LED matrices or seven-segment displays with a MAX7221 or MAX7219.
 * ✖ LedControl - an alternative to the Matrix library for driving multiple LEDs with Maxim chips.
 * ✖ LedDisplay - control of a HCMS-29xx scrolling LED display.
 * ✖ Metro - help you time actions at regular intervals (supported in Interrupt library)