vinciDuino - un Arduino Leonardo hecho por gente del foro

Hola a todos, para los que me habeis estado preguntando si tendre kits, ya estan disponibles... También tengo placas ensambladas, semi ensambladas y PCBs. Tambien viene de camino un lote en negro adicional.

A ver si mañana me animo un poco y contesto a los diversos comentarios.

El tema del OSHW esta en su etapa inicial y mi humilde opinión me dice que tendríamos que aprender algo de como se ha desarrollado el Software libre.

Partiendo de esta premisa entiendo claramente que sin empresas privadas que den soporte a cualquier plataforma OSHW no se llegaría muy lejos o dicho de otra forma serian pocas las iniciativas las que salgan adelante.

El OSS ha evolucionado a pasos agigantados debido a que se han construido plataformas encima de otras ya construidas mejorando las existentes y adaptándolas a necesidades especificas.

El caso "leonardo" realmente me ha decepcionado un poco principalmente porque yo soy un seguidor de Arduino no diré de la placas en si pero si de su filosofía y es realmente triste ver los mensajes de @mbanzi quien yo consideraba alguien realmente involucrado con la causa del OSHW pero que aparentemente cuando se toca su parte de la tarta se pone de esta forma dando ha entender que el tema OSHW es simplemente una herramienta para sus fines.

Volviendo al tema de la sostenibilidad es cierto que sin el apoyo de empresas particulares esto no avanzaría a la velocidad que ha avanzado y me parece totalmente bien que empresas saquen partido de este mercado pero lo que parece inaceptable es que se evite la evolución del OSHW. Ya que ha habido algunas quejas de la comunidad por el tema de la REV3 del Arduino UNO y su documentación.

Como contaba coleoptero hay diferentes formas de de llevar un proyecto libre, este puede ser totalmente abierto o tener un lider.

Pero el agravante que veo en el caso "leonardo" es que si hay una comunidad creando/mejorando cosas para el entorno Arduino, el equipo Arduino deberia tener un poco de responsabilidad moral y comunicarse con su comunidad; me explico mejor:

*Aparentemente Arduino publica documentación para leonardo por error.
*Arduino esta al tanto que hay proyectos que están desarrollando sobre la documentación publicada por error.
*Si se realizan cambios a lo que se ha publicado tienen una obligación moral con la comunidad de seguir publicando cambios y si no lo hacen no pasa nada, excepto que la confianza se pierde especialmente con los que se involucran mas en mejorar el entorno Arduino.

Esta claro que ni Vinciduino ni DFrobot ni nadie van a quitar su parte de la tarta a Arduino especialmente cuando tiene el soporte de entidades de mucho peso en este mundillo Sparkfun, hack a day, makezine etc.

Es por eso que me pregunto porque estas actitudes? porque estos mensajes? no nos olvidemos que la avaricia rompe el saco.

Haciendo una analogía entre Arduino y una libreria Math que hay en todo lenguaje de programación:

Entorno Arduino = libreria math

Arduino Uno = función suma

Arduino leonardo = función cuadrado de un numero (x2).

Vinciduino = Toma como base función cuadrado de un número (x2 - leonardo) y la adapta para crear una nueva función: cubo de un número (x3) y así el que empieza con el entorno Arduino pueda simplemente hacer import x3 y no tener que escribir todo el código.

Lo lógico es que si la funcion x2(leonardo) cambia se comunique al equipo que trabaja en la funcion x3. Pero esta lógica se utiliza si queremos que el entorno mejore y se creen muchas y mejores funciones para el resto de la comunidad.

En fin... espero que esto llegue a quien corresponda y se trabaje para hacer que la electrónica sea cada vez mas asequible para todos y que todos podamos vivir en simbiosis tanto empresa privada y gente que creemos que el conocimiento libre nos ayuda a mejorar como humanidad pero la simbiosis es un equilibrio y cuando una de las partes daña a la otra esto termina.

Después del twit de nuestro amado incinerador, me quede con la copla de hasta que punto habíamos hecho bien el diseño, basandonos en el mapa de pines ...
Me he puesto a buscar algunas fotos publicadas de Leonardo y... aparentemente, después de un trabajo de ingeniería inversa con las imagenes publicadas, todos los pines estan bien mapeados al micro. Cuando tenga un ratico las recupero (un poco chapuzas pero han cumplido su mision) y las publico.
Con lo cual, si no han hecho cambios de ultima hora tras pasar el marcado CE, todo debería funcionar tal cual.
A ver si también me animo a contestar a los últimos posts.

Hola a todos, aquí os dejo el laberinto que he hecho para ver si las salidas están configuradas de la misma forma en Leonardo y en la vinciDuino. Y si, haciendo un poco de ingeniería inversa lo que han publicado hasta la fecha coincide. Por lo tanto, si hay cambios serán de última hora y supongo que volverán a pasar el marcado CE, claro.

leonardoLayout.png

Hola,

primero de todo, aprecio tus comentarios por la parte que me toca. Creo que haces un analisis apropiado parte de la situacion. Voy a explicar mi punto de vista, pero antes dejame que responda a los temas que mencionas.

yOPERO:
*Aparentemente Arduino publica documentación para leonardo por error.
*Arduino esta al tanto que hay proyectos que están desarrollando sobre la documentación publicada por error.
*Si se realizan cambios a lo que se ha publicado tienen una obligación moral con la comunidad de seguir publicando cambios y si no lo hacen no pasa nada, excepto que la confianza se pierde especialmente con los que se involucran mas en mejorar el entorno Arduino.

Si no recuerdo mal, con el lanzamiento de Arduino 1.0 se publico el software que corresponde a la placa con varios matices:

  • el software no se publico por error, eramos conscientes de que venia con el IDE
  • tambien sabiamos que era un software inestable, como que el Firmware no funcionaba bien en las diferentes formas de Windows (creeme cuando digo que desarrollar drivers USB nativos para Windows es un poco un infierno)

Hay que admitir que lo que si es un error es publicar software que no esta listo, porque ahora mismo me encuentro con la situacion de que, por ejemplo, la universidad de Aalborg en Dinamarca esta haciendo Paperduino Leonardos y no tiene el Firmware para Windows.

Esta visto que no se puede proporcionar un Firmware en estas condiciones porque provoca que:

a) gente que confia en que Arduino "va y funciona a la primera" le puede no funcionar

b) hay entornos educativos que se arriesgan y terminan por tener objetos que no funcionan

(fijate que no incluyo la creacion de, por ejemplo, Vinciduino, puesto que esa es una aventura de otro calibre, donde un grupo de gente se atreve a probar a crear algo en equipo)

Lo que estamos aprendiendo desde dentro de Arduino es que tenemos que crear un nivel de trabajo mayor que el de iniciacion porque hay un grupo de gente que lo demanda. Es por esto que, por ejemplo, mudamos de SVN (Google Code) a Git (GitHub) ya que permite operaciones como "push" de cambios en el software para que el empaquetador final (en este caso Dave Mellis) solo tenga que aceptar o denegar las propuestas en funcion de las necesidades del proyecto.

Pero sin desviarme mucho del tema. Hasta la fecha, hemos estado colaborando con Adafruit (que fabrica Teensy's) y con Atmel (que contrato al chico que hizo Lufa) para hacer un Firmware compatible con todo. Estamos MUY cerca del lanzamiento y, el dia que eso salga, como es solo software, es posible que todo funcione para Vinciduino. En todo caso, si hay algo que no funcionase en lo que se refiere al USB, podria tener que ver con que influyan los trazados de pista o similar, cosa que se arreglaria haciendo las pistas lo mas parecidas posible a Leonardo.

Ya te puedes imaginar que estare encantado de echar una mano a que estas placas funcionen con el IDE ... es posible que haya que cambiar el fichero de configuracion de pines o algun detalle del core, pero no veo porque no ha de funcionar con un cambio minimo. (Es mas, he encargado mis propias placas a mi fabricante local, para ponerme al dia ... toma confesion)

Lo que no puedo hacer es adelantar nada. Como bien sabes no es por Vinciduino, sino porque hay fabricantes de clones que podrian echar por tierra el año de trabajo que ha llevado sacar adelante este proyecto. Gracias a los ficheros que sacamos y a la documentacion muchos habeis podido empezar a trabajar con vuestras placas, algo que admiro, pero tambien el señor que hace clones que vende en eBay o Amazon. Hasta ahora la unica ventaja con que contabamos para poder pagar de vuelta el trabajo en investigacion y desarrollo era la ventaja de 6 meses con los clones. Ahora ni eso :slight_smile:

En cualquier caso, insisto en que estamos trabajando para favorecer otros mecanismos de desarrollo que permitan la colaboracion de forma mas integrada que hasta ahora.

/d

Bueno, pues creo que me toca cumplir lo prometido y contestar en el foro cuales son mis pensamientos.

Realmente no quería publicar nada en caliente sin haber reflexionado antes sobre las cosas que se han comentado en los últimos días.

En primer lugar creo que hemos tenido un pequeño problema semántico (razón por la cual me he sentido
insultado y me he sentido aludido).

  • Cuando el equipo Arduino habla de clones creo que os referís a la gente que hace copias verbatim (Cntrl-C, Cntrl-V) de las placas, las fabrica y vende a capricho sin compartir los ficheros CAD que han usado (ejemplos, las placas que se ven por eBay y algunas tiendas on-line, ... Gente sin escrúpulos que no se rigen por el código ético del OS. Más bien son réplicas donde en algunos casos han puesto vuestro logo de aquella manera.

  • Cuando el equipo vinciDuino habla de clon, creo que en la semántica del equipo Arduino os referís a diseños derivado. Espero que la vinciDuino, aunque la llamemos un clon el espíritu es muy diferente. En muchas ocasiones he comentado que no puede ser un clon porque los esquemáticos no están disponibles ni la placa es accesible, y alguna vez he bromeado diciendo que en todo caso Leonardo sería un clon de la vinciDuino.
    En este sentido la vinciDuino:

  • Es una implementación OpenHW de "sala limpia" de lo que sería (será) Leonardo, y lo más compatible con la tarjeta final.

  • Añadirle a la placa algunas de las cosas que creo interesantes de cara a una placa de prototipado:

  • planos de masa separados entre mundo digital y analógico unidos en un punto estrella.

  • alimentaciones filtradas.

  • acceso a la UART a través de un conector "estandard" para poder conectar un módulo, por ejemplo Xbee.

  • un formato más pequeño y manejable

  • poder usarla para prototipar.

  • como una plataforma para aprender a soldar SMD y que la gente se la pueda montar tranquilamente en su casa.

Por otro lado el espíritu que hemos intentado mantener en este hilo ha sido:

  • Compartir con la gente del foro el proceso de diseño de una PCB además de recopilar los casos de uso de cada uno de los participantes.
  • Montar un grupo de trabajo donde la gente ha participado y ha aportado ideas, comentarios, sugerencias, evoluciones, revisiones, en esencia una equipo que comparte su afición con el resto.
  • La parte más egoista, es presentar en el seminario que doy anual cómo un proyecto OS maneja unos procesos similares a cualquier desarrollo industrial (concepto, especs, arquitectura, diseño, implementación, pruebas, revisiones por los pares, gestión de configuración o versiones, ...), todo está en este hilo.
  • Compartir un buen rato de ocio y uno de mis hobbies con la gente.
  • Y, en vista del interés plantear evoluciones a la plataforma vinciDuino.

Espero que mis interpretaciones vayan en este sentido y espero también que comprendáis que algunos comentarios que se han publicado no han sido nada agradables y, algunos no han sido muy afortunados. Es más, este fin de semana me he estado planteando terminar con la evo proto y a mis cosas.

Por último me ha sorprendido gratamente el comentario de David y, sobre todo, sus amables palabras para el equipo vinciDuino. Es de agradecer que estés haciendo el esfuerzo de seguir este hilo.

A modo informativo, la placa está funcionando muy bien en varios entornos:
PC, linux y Mac.
Es posible que en Mac es donde más se esté exprimiendo la interfaz USB de la placa donde las pruebas que he hecho son relativamente extensivas. Aun así, cuando salga el nuevo IDE correré la batería de pruebas y comentaré los resultados.

Con respecto al layout del USB, las pistas no tienen la misma longitud, pero también es cierto que la diferencia de fase que estoy viendo (mejor dicho, no viendo) en los pares diferenciales casi no la puedo medir con el setup de pruebas que me he montado (un detector de fase - tipo 1). Por lo que, a las velocidades a las que está trabajando el USB no es crítico (de momento).

A nivel de BER, tampoco he apreciado nada raro, y todas las pruebas que he ejecutado han sido satisfactorias. También es cierto que no han sido muy formales.

@David - si quieres una placa montada y probada, estaría encantado de mandarte una sin ningún problema, mándame un PM con tu dirección o un mail al correo de mi perfil.
Comprendo que no puedas/podáis comentar nada, comprendo que no interese adelantar acontecimientos para tener cierta ventaja comercial, pero lo que no comprendo es la mala leche con la que se han hecho algunos comentarios.

@David Cuartielles @Cole
Gracias por responder y exponernos tu punto de vista sobre los temas varios de los que se ha estado hablando en este hilo.

Me han llegado placas en blanco de Itead, el acabado es peor que el de el pedido anteriore de la rev B en blanco, es un blanco menos brillante, y las placas presentan algunas imperfecciones en la capa del blanco en algunas placas, mirando las placas creo que deben estar usando otro fabricante distinto los de Itead, de ahí que también hayan añadido otros colores y 4 layers a sus opciones.

He pedido unos carritos de la compra de mouser para montar unas pocas, todos los componentes siguen disponibles. Dejo la imagen de las placas y enlace a la imagen en grande.

Grande: http://farm8.staticflickr.com/7037/6788970698_918ea6261c_o.jpg

Pues en las fotos tienen una pinta estupenda. En blanco y negor me gustsn mucho como quedan.

bonita colección

fm ya ha dejado listo el blog en inglés: http://vinciduino.com/, (he tocado sólo un poco el texto para centrarlo y que quede más mejor).

Por lo que ya está lista la placa a falta de saber lo que hacen los de Arduino con los pines del Leonardo, el fin de semana pongo la parte de la evo en el de español.

AVR Studio 6 para AVR y ARM, si con instalar esto ya tienes todo lo necesario para trabajar con los cortex m3 de manera gratuita me acaban de hacer feliz x_x

Atmel releases Atmel Studio 6 beta, with support for SAM3 and SAM4 Cortex-M processor based MCUs, bug fixes, and other enhancements.

Atmel Studio 6 is the next progression in the AVRStudio 5.1 lineup, and is so named due to a new key feature; ARM device support. The AVR and ARM development teams have been collaborating to make a single development IDE which will support (at present) the AVR8, XMEGA, UC3, SAM3 and SAM4 series devices. Existing SAM-ICE debuggers and SAM evaluation kits are supported natively, and behave just as the existing AVR tools do. Also new in this beta release is a ARM-GCC toolchain, for native C/C++ development of ARM devices. The existing AVR Software Framework has been renamed Atmel Software Framework, and now includes preliminary SAM device support. A new "ASF Explorer" view in AS6 gives quick access to the API header, module documentation and dependencies of ASF modules included in an ASF application.

New version of AVR Software Framework (ASF), version 3.0 with more than 1000 example projects
Support for 300 Atmel MCUs
Integrated C++ compiler
QTouch® Composer touch application development tools as a replacement for the QTouch Studio
ASF explorer view to improve the ASF experience

@JMN - Me gusta, me gusta lo que has publicado. A investigarlo, aunque me toque desempolvar el PC.

Hoy me han mandado un mail los chicos de la universidad de Dinamarca, donde sus estudiantes están usando al padre de la vinciDuino (Paperduino Leonardo) y las vinciDuinos como parte de los cursos de formación del alumnado. Aquí os dejo un extracto del mail:

The first vinciDuino build session is set for this Friday (all day) - but we've tested one we did here "at home" already (in addition to the pre-built one you sent) - my teaching assistant for the course xxxx xxxxx is in fact already 'famous'! :wink: for this example he developed as one of the first things we will be showing the students how to program their vinci's :
Winning Video Games By Letting Arduino Push Your Buttons | Hackaday
(ok, well you will notice in the embedded video that he's using the Paperduino Leonardo, not a vinciDuino, because we're also using it as an example in the course - for students who wish to go even-more-DIY than the vinciDuino and use our university's in-house PCB-etching office). He posted instructions here: Arduino Playground - Keyboardgame

A grandes rasgos comenta que la construcción de las vinciDuinos comenzará el viernes aunque ya han ensamblado y probado una junto con la que les envié de referencia. Su asistente en el curso ya es famoso por los ejemplos que ha hecho y publicado. Como podréis ver en el video lo han hecho con una Paperduino Leonardo.

Pues francamente me ha alegrado el día.

Que hagan esas cosas en las universidades está genial, cuando estudiaba yo lo único que ví fue un motorola 68000 en un sitio con 3 ó 4 prácticas, y un 8051 en otro y sólo teoría, ya me hubiese gustado ver algo útil y que se pudiese aplicar en la vida real.

JMN:
Que hagan esas cosas en las universidades está genial, cuando estudiaba yo lo único que ví fue un motorola 68000 en un sitio con 3 ó 4 prácticas, y un 8051 en otro y sólo teoría, ya me hubiese gustado ver algo útil y que se pudiese aplicar en la vida real.

Pues yo en la asignatura de diseño con microprocesadores vi uno de refilón pero hice un diseño completo con un Z80 con memoria externa (todo sobre papel claro) :slight_smile:

También programamos micro código (sobre un simulador, claro), ensamblador (sobre un simulador, claro).

En fin, que me están entrando ganas de volver a la universidad... pero la segunda ronda en Dinamarca.

Viendo el enlace de hackaday que a puesto fm, creo que voy a reafirmar mi pensamiento que la leonardo a 'copiado' de idea de las teensy en concreto de la función que estas tenían que era su utilizas como teclado o ratón.

Os pongo una cosa que hice con un teensy y un nunchuck un fin de semana de aburrimiento >> Arcade Handgun - First Test on Modern Warfare 2 (Teensy 2.0 & Arduino Soft.) - YouTube

Y lo más seguro es que se pueda cargar el bootloader de arduino leonardo a las placas teensy con alguna modificación.

Un saludo!

He montado un par de placas en blanco de la versión C.

Grande: http://farm8.staticflickr.com/7202/6942206835_ae763195dc_o.jpg

El conector USB me gustaba más el anterior de la B, ya que es bastante más fácil de soldar para el que empieza, el nuevo creo que le puede costar a quien no haya soldado nunca o no tenga una punta finita.

Rev B.

El nuevo en la Rev C.

Vaya, pues a buscar otro. El que había antes, aunque sea mas fácil de soldar daba problemas ya que las lengüetas superiores se doblaban y si no se tenía cuidado se estropeaba el conector. Esto sucedía en la primera inserción, se ve que luego se doblaba un poco y no había problemas. Este problema me lo han comentado un par de personas con lo que decidí cambiar el conector para evitar problemas en el futuro.

Este fin de semana buscare uno nuevo.

Por cierto, la foto del back and white la podrías poner en la web. Mola un montón.

Yo lo que hago con el anterior antes de conectarlo es levantar un poco las lenguetas, y así no dan problemas.

SI este fin de semana lo pongo todo en la página junto al evo, o antes si me da tiempo, lo que no sé en que parte de la página ponerla.