Buenas prácticas para el hardware de fuentes abiertas

Como fue descrito en la definición del hardware de fuentes abiertas y los principios de constitución, la esencia del hardware de fuentes abiertas (Open Source Hardware u OSHW por sus siglas en inglés) consiste en compartir los archivos de diseño de una pieza de hardware (máquina, herramienta, artículo útil u otra pieza tangible, mecánica o electrónica) para que otros puedan modificarla o fabricarla, inclusive con propósitos comerciales. Hay adicionalmente muchas otras cosas que puedes hacer para fomentar el desarrollo de una comunidad vibrante de gente que usa y mejora tu proyecto de hardware de fuentes abiertas. El presente documento sugiere esas buenas prácticas.

Elementos de un proyecto de hardware de fuentes abiertas

Aquí hay algunos archivos que deberías considerar compartir cuando publiques tu proyecto de hardware de fuentes abiertas. No estás en la obligación de publicarlos todos, pero mientras más compartas, mayores serán los beneficios para la comunidad y mayor será la probabilidad de que la comunidad adopte tu proyecto.

Visión general / introducción

Tu proyecto de hardware de fuentes abiertas deberá incluir una descripción de la “identidad” del hardware y su propósito, escrito para una audiencia general en la medida de lo posible. Esto consiste en responder a preguntas sobre el proyecto tales como ¿qué es? y ¿para qué sirve?, antes de describir los detalles técnicos. Una buena fotografía o un “render” del diseño puede ayudar muchísimo en este punto.

Archivos del diseño original

Estos son los archivos de código fuente originales que pueden ser utilizados para hacer modificaciones al diseño del hardware. El acto de compartir estos archivos es la práctica central del hardware de fuentes abiertas.

Idealmente, tu proyecto de hardware de fuentes abiertas será diseñado utilizando una aplicación de software libre y fuentes abiertas para maximizar la habilidad de otros para ver y editarlo. Sin embargo, quiérase o no, los archivos de diseño de hardware son creados usualmente en software propietario y guardados en formatos propietarios. Siempre es esencial compartir estos archivos originales de diseño, ya que estos constituyen el “código fuente” para el hardware. Estos son los archivos que alguien podría necesitar para contribuir con cambios al diseño dado.

Trata de hacer que tus archivos de diseño sean fáciles de entender para alguien más: ordénalos de forma lógica, comenta los aspectos complejos, haz nota de cualquier procedimiento de manufactura inusual, etc. Algunos ejemplos de archivos originales del diseño pueden incluir.

  • Dibujos 2D o archivos de diseños asistidos por computador (CAD), como aquellos utilizados para describir cortes dimensionales de laser, cortes de vinilo o cortes por jet de agua, en su formato original.
    Formatos de ejemplo: Archivos de diseño 2D nativos guardados en Corel Draw (.cdr), Inkscape (.svg), Adobe Illustrator (.ai), AutoCAD, etc.

  • Diseños 3D que pueden ser impresos, forjados, moldeados por inyección, extruidos, maquinados, etc.
    Formatos de ejemplo: Archivos nativos guardados para SolidWorks (.sldprt, .sldasm), Rhino, etc.

  • Archivos CAD de diseño para placas/tabletas electrónicas como diagramas eléctricos (esquemáticos) y tabletas electrónicas impresas (plantillas).
    Formatos de ejemplo: Archivos nativos guardados por Eagle, Altium, KiCAD, gEDA, etc.

  • Bibliotecas de componentes (símbolos, tamaños, soportes, etc.) necesarios para la modificación de los archivos CAD.

  • Dibujos técnicos adicionales en sus formatos originales de diseño, si se requieren para la fabricación del dispositivo.

  • Artes adicionales que puedan ser utilizados en el dispositivo y que están incluidos en la distribución del hardware de fuentes abiertas, tales como emblemas, o superposiciones cosméticas en su formato original de diseño.

En el caso que un diseño fuera creado originalmente en un formato alternativo, incluso aquel que podría considerarse normalmente como un archivo de diseño auxiliar (lo cual se discute en la siguiente sección), este diseño original en el formato original podría ser considerado “archivo de diseño original”.

Ejemplos de formatos alternativos que podrían constituir archivos de diseño original bajo circunstancias especiales incluyen:

  • Código G escrito a mano para una parte maquinada (G-code).

  • Planos escaneados dibujados a mano (JPEG)

  • Escaneos detallados 3D de moldes de resina modelados a mano (STL).

  • Patrones de máscaras para elaboración de tabletas electrónicas de un solo lado, como las dibujadas en MS Paint (PNG).

Archivos de diseño auxiliar

Más allá de los archivos originales de diseño, usualmente ayuda el compartir tu diseño en formatos adicionales más accesibles. Por ejemplo, la buena práctica para diseños CAD de fuentes abiertas es no solamente compartir el archivo en su formato nativo, sino también en un rango de formatos intercambiables y de exportación que pueden ser abiertos o importados por otro software CAD.

Es también de ayuda proveer archivos “listos para verse” que puedan abrirse por los usuarios finales que desean entender (pero no necesariamente modificar) el diseño. Por ejemplo, un PDF con el esquemático del diagrama eléctrico o un diagrama STL de un diseño 3D. Estos archivos auxiliares de diseño permiten a la gente estudiar el diseño del hardware y algunas veces fabricarlo, incluso sin acceso a algunos paquetes de software propietario.

Sin embargo, observa que los archivos de diseño auxiliar nunca son aceptados como sustitutos para los archivos de diseño originales.

Los ejemplos de archivos de diseño auxiliar incluyen:

  • Dibujos 2D o archivos CAD en un formato 2D de exportación o intercambio.
    Formatos de ejemplo: DXF, SVG

  • Dibujos 2D o archivos CAD en un formato 2D de exportación fácil de visualizar.
    Formatos de ejemplo: PDF, JPEG, PNG, etc. (En la medida de lo posible, los formatos vectoriales son preferidos sobre los mapas de bits)

  • Diseños 3D o archivos CAD en un formato 3D para exportación o intercambio.
    Formatos de ejemplo: STEP, IGES

  • Diseños 2D o 3D en formatos de exportación listos para la manufactura.
    Formatos de ejemplo: G-code, STEP-NC, STL, AMF

  • Archivos de diseño de tableta electrónica en formatos de exportación o intercambio.
    Formatos de ejemplo: EDIF, Open JSON

  • Archivos de diseño de tableta electrónica en formatos listos para la manufactura.
    Formatos de ejemplo: Gerber RS-274X, Excellon

  • Dibujos técnicos adicionales en sus formatos originales, si son requeridos para la fabricación del dispositivo en un formato de lectura común como PDF.

  • Arte gráfico adicional, por ejemplo diferentes “pieles” coloreadas para un panel de instrumentos.

Lista/Costo de Materiales (Conocido como Bill Of Materials o BOM)

A pesar de ser posible inferir las partes que componen una pieza de hardware desde los archivos de diseño, es importante proveer de un costo de materiales por separado. Esta puede ser una hoja de cálculo (P.E.: CSV, XLS, Google Doc) o simplemente un archivo de texto con una parte por línea. Si tu software de CAD tiene herramientas para la administración de BOM integrado, estos también son una buena opción. (Se incluyen por ejemplo las herramientas integradas en SolidWorks y bom-ex para Eagle). Algunas cosas útiles para incluir en el BOM son los números de partes, proveedores, costos y una pequeña descripción de cada parte. Haz fácil determinar cual elemento en el costo de materiales corresponde a qué componente en tus archivos de diseño: utiliza indicadores de referencia correspondientes en ambos lugares, provee un diagrama indicando que parte va hacia adónde o explica los aspectos de correspondencia necesarios.

Software y firmware

Deberás compartir cualquier código o firmware requerido para operar tu hardware. Esto permitirá a otros usuarios, utilizarlo con su hardware o modificarlo acorde a sus modificaciones a tu hardware.

Documenta el proceso requerido para compilar tu software, incluyendo vínculos a cualquier dependencia (p. ej.: Bibliotecas de funciones de terceros o herramientas). En adición, es de ayuda proveer una visión general del estado del software (p. ej.: “estable” o “beta” o “modificación-que-apenas-trabaja”)

Fotografías

Las fotografías ayudarán a la gente a entender qué es tu proyecto y cómo armarlo. Es bueno publicar fotografías desde múltiples puntos de vista y en varias etapas del ensamblado. Si no tienes fotos, colocar los “renders” 3D de tu diseño es una buena alternativa. De cualquier manera, es bueno proveer descripciones o textos que expliquen qué se muestra en cada imagen y por qué es útil.

Instrucciones y otras explicaciones

En adición a los archivos de diseño, hay una variedad de explicaciones que son invaluables en ayudar a otros a construir o modificar tu hardware:

Construyendo el hardware. Para ayudar a otros a fabricar y modificar tu diseño de hardware, puedes proveer instrucciones para ir desde los archivos de diseño hasta el hardware físico funcionando. Como parte de las instrucciones, es de ayuda vincular a las hojas técnicas de los componentes / partes de tu hardware y listar las herramientas requeridas para ensamblarlo. Si el diseño requiere herramientas especializadas, explica a la gente a dónde obtenerlas.

Utilizando el hardware. Una vez que alguien ha construido el hardware, necesita saber cómo utilizarlo. Provee instrucciones que expliquen qué es lo que hace, cómo configurarlo y cómo interactuar con él.

Razón tras el diseño. Si alguien quiere modificar tu diseño, querrán saber por qué es cómo es. Explica el plan general del diseño del hardware y por qué hiciste algunas elecciones específicas. Ten en mente que estas instrucciones podrían ser leídas por alguien cuya experiencia o entrenamiento es diferente al tuyo. En la medida de lo posible, trata de escribir para una audiencia general, revisa tus instrucciones en busca de “jerga industrial”, sé explícito acerca de lo que asumes que tu usuario conoce, etc.

Las instrucciones pueden estar en una variedad de formatos, como una wiki, un archivo de texto, Google Docs o PDF. Recuerda también, que otros podrían querer modificar tus instrucciones al momento que modifican tu diseño de hardware, así que es bueno proveer los archivos originales editables de tu documentación, no sólo formatos de salida como PDF.

Procesos de hardware de fuentes abiertas y prácticas

Diseñando tu hardware

Si planeas abrir las fuentes de una pieza particular de hardware, el seguir ciertas prácticas en el diseño hará más fácil para los demás fabricar y modificar el hardware:

  • Utiliza software de diseño (CAD) libre y de fuentes abiertas donde sea posible. Si eso no es factible, intenta usar paquetes de software de bajo costo o ampliamente utilizados.

  • Utiliza componentes, materiales y procesos de producción que sean estándar y disponibles ampliamente. Evita utilizar partes que no estén disponibles a compradores individuales o procesos que requieran altos costos de implementación.

Alojando tus archivos de diseño

Una forma básica de compartir tus archivos es un ZIP en tu website. Mientras que es una buena forma de comenzar, hace difícil para otros seguir tus progresos o contribuir con mejoras.

Recomendamos utilizar un repositorio de código fuente en línea (como GitHub, Gitorious o Google Code) para guardar tus proyectos de hardware de fuentes abiertas. Todos los archivos (diseños, BOM, instrucciones de ensamblado, código, etc.) deberán de contener un control de cambios en la medida de lo posible. Si quieres desarrollar tu hardware de manera pública, los repositorios en línea hacen fácil publicar los cambios a tus archivos cuando los crees, o podrías publicar actualizaciones con las distribuciones del hardware.

La mayoría de los repositorios en línea también incluyen un registro de errores, los cuales son una buena forma de llevar registro de los “bugs” y futuras mejoras planeadas en tu software en una forma que otros pueden ver y comentar.

Algunos incluyen wikis que pueden ser buenos lugares para documentar tu proyecto.

Como una alternativa a un repositorio en línea, puedes desarrollar tu proyecto en una herramienta CAD  en línea (como Upverter) o podrías compartir tus archivos en un sitio web como Thingiverse.

Licenciamiento de tus diseños

Mientras que el licenciamiento es un tema complejo, el uso de licencias es una forma importante de señalar cómo otros deberían utilizar tu trabajo. Aplicando de manera explícita una licencia de fuentes abiertas a tus archivos de diseño de hardware y otra documentación, dejas claro que otros pueden copiar y modificarlos. Cuando licencias tu proyecto, ten en mente que alguien que construya un derivado de tu hardware, posiblemente también quiera construir sobre tu software, instrucciones y otra documentación. Tu deberías licenciar no sólo los archivos de diseño de hardware sino también otros elementos de tu proyecto.

Nota que los derechos de autor (en el cual la mayoría de las licencias están basadas) no aplica al hardware en sí mismo, únicamente a los archivos de diseño de él – y luego, únicamente a los elementos que constituyen “obras de autoría original” (en la ley de EE. UU.) y no a la funcionalidad subyacente o a las ideas. Por lo tanto, no es completamente claro cuáles protecciones legales son o no son aplicables en el uso de licencias basadas en copyright para los archivos de hardware– pero siguen siendo importantes en el aspecto de dejar claro las formas en que quieres que otros utilicen tus diseños.

Hay dos clases de licencias de fuentes abiertas o de software libre: Licencias “Copyleft” (o virales) que requieren que los derivativos sean licenciados bajo los mismos términos; y las licencias permisivas, que permiten a otros hacer modificaciones sin distribuirlas como hardware de fuentes abiertas. Nota que la definición del hardware de fuentes abiertas específica que deberías permitir la modificación y re-uso comercial de tu diseño, por ello evita licencias que no permitan derivados o cláusulas no comerciales.

Las licencias populares copyleft incluyen:

Las licencias permisivas incluyen:

Es buena práctica incluir una copia de la licencia en el repositorio de control de versiones y un párrafo en cada archivo o al menos en el LEEME especificando el(los) autor(es), año(s) de modificaciones no triviales y la licencia.

Distribuyendo hardware de fuentes abiertas

  • Provee vínculos a la fuente (archivos originales de diseño) de tu hardware en el mismo producto, su empaquetado o la documentación.

  • Haz que sea fácil encontrar las fuentes (archivos originales de diseño) desde el website del producto.

  • Etiqueta el hardware con un número de versión o fecha de distribución para que la gente pueda identificar el objeto físico con su correspondiente versión en los archivos de diseño.

  • Utiliza el logo de Open Hardware. Hazlo en una forma que sea claro a qué partes aplica el logo (p. ej.: Qué partes son de fuentes abiertas)

  • En general, indica claramente qué partes de un producto son de fuentes abiertas (y cuales no).

  • No te refieras a hardware como de fuentes abiertas hasta que los archivos del diseño están disponibles. Si planeas hacer un producto de fuentes abiertas en el futuro, menciona eso en cambio.

Construyendo sobre hardware de fuentes abiertas

  • Respeta las marcas comerciales de otros.

  • Haz cambios útiles a una pieza de hardware en vez de simplemente vender copias de él.

  • Comparte tus cambios y mejoras con el creador del hardware original.

Última actualización: Abril 18, 2013 por la lista de correos de la OSHWA, coordinado por David A. Mellis.
Versión inicial: Noviembre 21, 2012 por Nathan Seidle y la lista de correos de la OSHWA.
Traducción al español: Septiembre 26, 2013 por Mario Gómez con los aportes de Leonardo Saccomanno, Rafael Ibarra y Emilio Velis.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.