domingo, 15 de abril de 2012

Soluciones para OSHW

A continuación analizaremos algunos puntos cruciales para utilizar una licencia de OSHW y las herramientas para cumplirlos:

1. Sobre la documentación del proyecto


“El hardware liberado ha de incluir documentación en la forma de ficheros de diseño y deberá permitir la modificación y redistribución de los mismos.”

Personalmente considero este punto uno de los más importantes.  Si quieres liberar un diseño con licencia de Open Hardware, todos los archivos que permitan la construcción de dicho hardware deben ser realizados en paquetes de software de libre distribución.  Además en medida de lo posible, la descarga de estos ficheros debe estar disponible para el usuario desde un servidor gratuito.

Otro factor importante a tener en cuenta es que los archivos de descarga deben permitir la modificación del diseño original, es decir, no puedes subir un código compilado o un ejecutable sin el código fuente, pues en eso radica la diferencia entre hardware (o software) gratuito y hardware libre.  También en medida de lo posible debes subir los archivos en el formato original, no sólo un pdf o una imagen con el esquema; por ejemplo, en un circuito electrónico de preferencia debes subir los archivos fuentes de esquemas y pcb en el software que lo diseñaste y no una captura de los mismos.


Software a utilizar:


a)      Para el código fuente en dispositivos (MCUs, FPGAs, etc)

Este punto depende mucho de la marca o tipo de dispositivo que utilices. De preferencia, se deben utilizar las herramientas e IDEs propios de los fabricantes (por ejemplo, MPLAB para PICs de Microchip).  Si utilizas software pagado (aunque no lo hayas pagado –sabes a qué me refiero--), de igual manera puedes subirlo a un repositorio, pero esa no es la idea, pues todo debe basarse en software libre o gratuito.
Una alternativa interesante es programar los dispositivos utilizando los plugins disponibles de Eclipse para AVR y ARM.

 
Figura 1.  MPLAB X de Microchip

b)     Para el diseño del esquemático y el PCB

Este tema es un poco delicado, pues por ejemplo, en mi ciudad la única empresa que provee soluciones para construcción de circuitos impresos es SME Elektronik y ellos trabajan únicamente con Altium Designer (por favor corregirme si me equivoco), y además se tiene que enviar el archivo en Altium para la fabricación, pues no tienen una plantilla para la creación de gerbers.  Este particular limita de cierta manera la fabricación de equipos pues no se pueden utilizar herramientas gratuitas como Eagle, KiCad o DIPTrace.

   
Figura 2.  Logotipo de Eagle


c)       Para el diseño mecánico

Si quieres un terminado profesional para tu proyecto, y requieres utilizar software de CAD en 3D para el diseño de contenedores, pues la única alternativa (que por lo menos se utiliza en mi ciudad) es Inventor de Autodesk.  Inventor, quizá sea una buena opción, pues se puede obtener una licencia gratuita para estudiantes, pero no es software libre, para esto podemos utilizar herramientas como FreeCad.
d)      Para el diseño del logotipo
¿Photoshop?, ¿CorelDraw?... excelentes programas, pero tienen su precio… podemos utilizar alternativas como Gimp, o Blender (para 3D).

(a)
(b)
Figura 3.  Software abierto para diseño gráfico. a) Gimp, b) Blender


 d) Repositorios gratuitos

Definitivamente, el mejor a mi parecer es SourceForge, pues es una comunidad dedicada al Open Source Software. Pero también podemos utilizar GitHub y Google Code.

Consejos:

·         Si utilizas un microcontrolador en tu proyecto, sube el código fuente, no únicamente el archivo “.hex”.
·         Si utilizas algún tipo de software de control, de igual manera, sube el código fuente además del ejecutable.
·         Adjunta la lista de materiales necesarios para la implementación de tu hardware.
·         Si es posible, adjunta también alternativas de dispositivos, y la memoria técnica de diseño.

3. Programas informáticos necesarios

“Si el diseño bajo licencia necesita de un paquete de informático, bien como parte del mismo, bien para operar de forma apropiada y cumplir sus funciones básicas”, la licencia podría requerir que se cumplieran alguna de las condiciones siguientes:

a) Que los interfaces habrán de estar documentados suficientemente como para considerar la posibilidad de crear un paquete informático en código abierto que permitan al dispositivo operar de forma apropiada y cumplir sus funciones básicas. Por ejemplo, esto podría incluir diagramas de tiempo detallados para señales o pseudocódigo que claramente ilustre el interface operando.

b) Que el paquete informático necesario venga liberado bajo una licencia de código abierto aprobada por la OSI.

… Quizá la solución a esto lo tenga Eclipse, pues es gratuito, en comparación a las versiones de VisualBasic, .Net, o C en compiladores de Microsoft.

Espero estos tips sean útiles para uds. Hasta una próxima entrega... adiós.