Para la escritura de esta librería se siguen los lineamientos indicados en la Wiki del proyecto Pinguino. Se ha intentado hacer un port de la librería FreeSensors para Arduino, pero la principal dificultad ha sido no tener la posibilidad de hacerlo en el mismo C++ original, ya que se habían usado clases y herencia entre clases. Para Pinguino debe hacerse en C sin objetos, y esto se debe a una limitación del compilador SDCC para microcontroladores de 8 bits, no siendo simple su resolución (hay algunos intentos de agregarle clases y objetos a ese C del SDCC). Al tener que traducir todo a simples funciones de C, la principal limitación es no poder fácilmente instanciar varias placas a la vez (lo que se corresponde con haber apilado mas de una placa del mismo tipo sobre la controladora), por lo que se resolvió colocar un nombre fijo para los objetos que se corresponden con las shields.
La idea ha sido compatibilizar el código que el usuario escribe en el IDE, habiéndose logrado una compatibilidad del 100% para la shield FSdirect. Por ejemplo, para el caso de prender y apagar un led cada 1 seg. tenemos el siguiente programa (idéntico en Arduino IDE y Pinguino IDE):
Las diferencias entre ambos IDE son las siguientes:
Al igual que para Arduino, la libreria contiene un sub-directorio con ejemplos.