moDuino Mega, un Arduino personalizado basado en Arduino Mega 2560

Cuál es la idea del moDuino Mega

La idea de este proyecto es que sea colaborativo y Open Hardware. Esto quiere decir que cualquiera que quiera apuntarse puede hacerlo, también puede ayudar aportando consejos, ideas, mejoras, etc.

Con este proyecto se quiere conseguir un Arduino personalizado a nuestro gusto. No se busca fabricar un Arduino Mega al mínimo precio, y menos cuando el microcontrolador ya cuesta el 90% del precio que cuesta una placa ya montada en ebay, por ello el que busque simplemente un Arduino Mega lo mejor es que se pase por ebay.

El que siga interesado en esta placa ha de saber que con Arduino personalizado me refiero a un Arduino de una tamaño distinto al resto, pero siguiendo los estándares para que sea compatible con la shields de expansión del resto de Arduinos, con pines extra para módulos como los Xbee, Bluetooth, LCD, etc. También ha de saber que puede ser un proyecto largo, es decir que se tarde tiempo en fabricar, pues hace falta bastante tiempo para realizar los esquemas, asegurarse que todo esta bien repasándolo todo, poniéndonos nosotros de acuerdo, pedir las placas, los componentes, etc.

También se quiere aprender con todo ello, tanto a usar los programas para diseñar la placa, como para soldar los componentes, bastante pequeños de hecho, como tantas otras cosas que habrá que hacer. Por poner un ejemplo esta iniciativa me vino a la cabeza después de ver el proyecto vinciDuino, el cual sale mas barato en general por el microcontrolador, el usado en el Arduino Leonardo que ademas incorpora controlador USB, en nuestro caso va por separado.

Toda la información del proyecto se puede consultar a través de mi blog, desde este hilo y desde Google Code, donde se ubican todos los ficheros e información.

moDuino Mega, basado en Arduino Mega 2560

La placa en si es una mezcla de varios Arduinos, el más significativo es el Mega, del cual hereda su microcontrolador en su versión 2560, que cuenta con mucha más memoria. Sin embargo el tamaño de la placa es casi como un Arduino Uno/Duemilanove/Leonardo salvo por 1cm extra que tiene por el lado derecho para de este modo poder incorporar unos pines extra. Los pines siguen la disposición de los Arduinos Rev3, como el Uno o el Leonardo, esto quiere decir que el puerto i2c esta en la esquina superior izquierda en vez de en los pines analógicos, o de la incorporación del pin IOREF(5v) junto a los pines de alimentación.

Además de los pines estándar se han añadido unos cuantos mas. A la izquierda, entre medio del puerto MiniUSB y el de alimentación, esta el puerto UART, idea que saque del vinciDuino, este nos permite conectarle módulos como los Xbee de SparkFun?. En la esquina inferior derecha se cuentan con 5 pines analógicos extra haciendo un total de 11. Justo encima hay una ristra de 8 pines digitales y de alimentación para conectar un LCD con conexión paralelo o cualquier otra cosa. Y encima del puerto ICSP hay 6 pines para colocar un modulo bluetooth. Ademas hay una doble tira de pines digitales en la parte superior para hacer la placa compatible con las placas de topos ademas de la shields.

Para crear el PCB he usado el esquematice original del Arduino Mega 1280 y 2560. Prácticamente el esquemático es el original al del 1280 salvo el puerto USB-B que ha sido cambiado por un MiniUSB y el reductor de tensión que es el del 2560.

Ahora me queda asegurarme de que no hay ningún error en la placa, buscar un fabricante de placas, una tienda que tenga todos los componentes y montarla. Si alguien le apetece alguna que lo diga, lo mas seguro es que haga un pedido de 10 placas.

Caracteristicas del moDuino Mega

  • Tamaño casi como el de un Arduino Uno, tiene 6 y 2,5mm mas de anchura y altura respectivamente, es decir 75 x 56mm en total.
    Cuenta con el microcontrolador del Arduino Mega, un ATmega 2560 de 8bits a 16Mhz con 256KiB de memoria FLASH, 8KiB de SDRAM y 4KiB EEPROM.

  • Tiene 31 salidas/entradas digitales, de ellas:

  • 12 también son salidas PWM

  • 8 corresponden a los cuatro puertos Serial/UART

  • 3 solo pueden usarse como salida para los 3 leds extra de la placa (funcionan como el led del pin 13).

  • Tiene 12 entradas analógicas, una de ellas en la parte inferior para controlar el estado de un posible modulo de alimentación mediante baterías a 5V.

  • Tiene 4 puertos Serial/UART, 1 puerco I2c y 1 puerto ICSP. No tiene puerto ISP.

  • Cuenta con 4 conectores especiales, el primero al lado del USB para módulos Xbee (con una placa adaptadora), el segundo para un modulo bluetooth, el tercero junto al puerto ICSP que nos permite conectar cualquier cosa, un LCD por ejemplo, y el cuarto en la parte superior junto a los pines digitales para permitirnos usar placas de topos y ser compatible con las shields caseras.

  • Posee un conector MiniUSB para programar la placa o para usarlo con el puerto Serial 0

  • La placa tiene la fuente de alimentación de la revisión tres del Arduino Mega y la tensión para el pin de 3.3V no se saca del chip FTDI si no del regulador LP2985.

  • La placa permite elegir el oscilador que se quiera ya que admite tanto cristales de cuarzo como resonadores. En caso de elegir el resonador los condensadores C2 y C3 son prescindibles.

Ficheros Eagle

Imágenes de la ultima revisión, la A4:

Aquí hay auténticos genios en esto del Eagle. Haber si tienes suerte

He modificado los ficheros y los he dejado mas presentables además de mejorar alguna cosa.
Ahora me pondré a releer el hilo de vinciDuino a ver si encuentro los fabricantes de PCBs, que vi dos o tres pero no los apunte :confused:

Los servicios más baratos son por orden:

1º - http://imall.iteadstudio.com/open-pcb/pcb-prototyping.html
2º - http://www.seeedstudio.com/depot/fusion-pcb-service-p-835.html?cPath=185

Aunque se diferencian muy poco uno del otro, hay más pero ahora no me acuerdo de ellos pero son más caros también.

Me mirado la PCB y esta guapísima! Aunque hay algunas cosas que son lo que llamo yo parches, que yo también los hago y cuando empece con eagle más!

Por ejemplo mírate el esquema y pcb de la vinciduino, y veras un conector USB que tiene la carcasa metálica con la posibilidad de conectar las cuatro patas a GND para ahórrate esas dos vías que le has puesto :slight_smile:

Un saludo!

Gracias por la información, me apunto las tiendas y mirare lo del usb (que ojo tienes xD)

Ahora estaba trasteando con el Eagle 3d:

Como mejora puedes ponerle una tira interior del pin 8 adelante para compatibilidad con perfboards y también conectores de reglatas en el power supply por si alguien quiere alimentar con batería para no comprar el Jack.

Hola,

Si, lo vi en el hilo del vinciDuino, el conector de alimentación probé a ponerlo pero queda todo muy prieto, en vuestra placa el jack de alimentación queda a ras de la placa, y las pads mas adentro, en la mía sobresale como el resto de Arduinos. En cuanto a duplicar la tira de pines digitales ya ni me lo plantee, a parte no sé hasta que punto merece la pena.

PD: Ya cambie el conector y ahora salen casi todas las serigrafia. Mañana probare los componentes :slight_smile:

Edit: Ni idea de por qué en el render los conectores se ponen de cualquier forma.

Hey, mola tu proyecto, a ver si saco algo de tiempo y me paso de vez en cuando :wink:
Hace poco vi una entrada en Hack a Day donde hablaban de 3 fabricantes de PCBs (OSH PARK, Itead y Seeed)

El problema de Itead y Seed es que muchos usuarios suelen encontrarse con fallos en las PCBs, sobretodo si tienes pistas, vias, etc demasiado pequeños-delgados.

Si te fijas en los comentarios la gente recomienda alguno en Europa que te puede venir bien :wink:

Gracias por el comentario,

Si, algo había leído al respecto sobre esos fallos, creo que la vinciDuino esta pedida en iteadstudio y estoy intentando usar pistas de 13.8mil, subirlo mas de eso, salvo para las pistas de corriente, no se hasta que punto puede tener sentido ya que es el tamaño de los pads del microcontrolador, si eso no sale bien me da igual que las pistas gordas si salgan :S
Las vías las tengo a 16mil, podría subirlas un poco mas, 18, quizás 19 como mucho.

Sobre el proyecto, he abierto un repositorio en Google Code, y desde el blog se han interesado dos personas. A ver si saco tiempo he intento añadir de alguna forma la tira de pines digitales para las placas de topos y cambio alguna cosa mas.

Y en cuanto a los componentes he mirado en ebay, ahí salen a unos 20€ a falta de encontrar los condensadores que no veo ni uno, quizás intente usar los de la Rev3 en vez de la Rev2 ya que son mas comunes.

Saludos!

giltesa:
En cuanto a fabricar la placa, he de eliminar las capas que sobran en el Eagle y dejar solo las justas como: Top, Bottom, Pad, vias, etc.? o ya se encargan ellos? supongo que al menos las descripciones deberán de estar en alguna capa concreta no? (he intentado dejar todo como el Mega original o el vinciDuino..)

Para enviar las placas, hay muchos fabricantes de PCBs que aceptan los ficheros de Eagle directamente, pero lo más común es generar los archivos gerbers que te pide el fabricante según sus condiciones y medidas. En concreto iteadstudio ha facilitado esto poniendo el archivo CAM y DRC (taladros) para eagle, para que puedas generar los gerbers según sus condiciones.
Yo recomiendo que antes de enviar a fabricar cargues dichos gerbers con algun programa o pagina web para que compruebes que cada elemento está donde toca, que los taladros cuadran bien, la top y la bot también y así no te lleves sorpresas al recibir las placas :sweat_smile:

Igual es una chorrada, pero ya que la placa es una placa derivada de Arduino Mega podrías ponerle un nombre con menos palabras, pero que sugiera el concepto "Arduino Mega"

Otra cosa, ya que los componentes se van a comprar en ebay, estaría bien ver los datasheets de algunos para asegurarse que complen unos mínimos y que no influirán en el funcionamiento de la placa de manera negativa, como la calidad del cristal...

Por último, sería interesante que el UART para el bluetooth o XBEE trabaje a 3.3v o 5v, aunque no se que tan viable es :~

He mirado la lista de los materiales y me acabo de dar cuenta de que las resistencias que has puesto son de 1/8 de wattio, lo conveniente en estos casos sería utilizar resistencias de 1/4 de wattio y si puede ser de una tolerancia del 1% mejor q mejor.

CarlosGz:

giltesa:
En cuanto a fabricar la placa, he de eliminar las capas que sobran en el Eagle y dejar solo las justas como: Top, Bottom, Pad, vias, etc.? o ya se encargan ellos? supongo que al menos las descripciones deberán de estar en alguna capa concreta no? (he intentado dejar todo como el Mega original o el vinciDuino..)

Para enviar las placas, hay muchos fabricantes de PCBs que aceptan los ficheros de Eagle directamente, pero lo más común es generar los archivos gerbers que te pide el fabricante según sus condiciones y medidas. En concreto iteadstudio ha facilitado esto poniendo el archivo CAM y DRC (taladros) para eagle, para que puedas generar los gerbers según sus condiciones.
Yo recomiendo que antes de enviar a fabricar cargues dichos gerbers con algun programa o pagina web para que compruebes que cada elemento está donde toca, que los taladros cuadran bien, la top y la bot también y así no te lleves sorpresas al recibir las placas :sweat_smile:

Es bueno saberlo, si que vi que en iteadstudio habia que usar un fichero CAM para prepararles los ficheros, pero no sabia que luego podia comprobarlos para asegurarme que todo estaba bien, tendré que investigar que programas o paginas permiten eso.

CarlosGz:
Igual es una chorrada, pero ya que la placa es una placa derivada de Arduino Mega podrías ponerle un nombre con menos palabras, pero que sugiera el concepto "Arduino Mega"

Otra cosa, ya que los componentes se van a comprar en ebay, estaría bien ver los datasheets de algunos para asegurarse que complen unos mínimos y que no influirán en el funcionamiento de la placa de manera negativa, como la calidad del cristal...

Por último, sería interesante que el UART para el bluetooth o XBEE trabaje a 3.3v o 5v, aunque no se que tan viable es :~

Bueno, el primer nombre que le puse fue Arduino Mega Mini, luego le puse el que tiene ahora, realmente es algo que no me importa mucho, seria interesante algo que tuviera gancho. Supongo que entre los que colaboren algún nombre saldrá mejor que el actual.

De comprarlos en ebay seria si solo fuera a montar mi placa, si veo que mas gente se une supongo que lo mejor seria pedirlo en mouser o digikey ya que cubriríamos el mínimo para que los gastos de envío salgan gratis, luego solo habría que repartir las placas y componentes por correos.

En cuanto al puerto UART me lo he copiado del vinciDuino, y ellos lo pusieron asi por que los modulos con “chaqueta/adaptador” usan esa distribución de pines, supongo que si el xbee fuera a 3.3v tendra su propio conversor. Lo mismo sucede con el bluetooth, los pines están preparados para montar un modulo HC-05 maestro o esclavo, o un HC-06.

CarlosGz:
He mirado la lista de los materiales y me acabo de dar cuenta de que las resistencias que has puesto son de 1/8 de wattio, lo conveniente en estos casos sería utilizar resistencias de 1/4 de wattio y si puede ser de una tolerancia del 1% mejor q mejor.

Realmente son las que se usan originalmente en el Arduino Mega Rev2, no se si hay de 1/4w del tamaño 0805, porque mas grandes no entrarían tampoco.
lo que si tengo que mirar es intentar mezclar el Arduino Mega rev2 y rev3. Del rev2 me gusta el adaptador USB->Serie pues emplean un chip FTDI de un tamaño adecuado, sin embargo en la rev3 es mucho mas pequeño, casi, o sin casi, haría falta soldarlo con una estación de soldadura de aire así que por eso descarte esa versión, sin embargo si que tiene mejor el conversor de alimentación, que usa condensadores “normales”, los amarillos de la Rev2, al menos en ebay, no ha habido forma de encontrarlos.

Gracias por los comentarios!

Para comprobar los gerbers puedes hacerlo con estas págianas

Yo en MAC utilizo un programa que se llama: MCN Gerber Viewer.

En cuanto al adaptador USB to Serial, la verdad es que el FT232RL es más manejable de cara a soldar que el que ponen en la Rev3. :slight_smile:

Al final los componentes veo que comprarlos por ebay va a ser un poco rollo xq no están todos, tardan 15días o así en llegar y al final los condensadores hay que buscarlos en otro sitio. Igual es mejor ir buscando alternativas, yo solo conozco los que has mencionado anteriormente más Farnell y Rs, pero no tengo experiencia directa con ninguno.

Lo de poner un adaptador para 3.3v en UART me sigue pareciendo una gran idea y una buena diferenciación de esta placa con respecto a la mega de Arduino, xq a parte de la ubicación de los pines y la posibilidad de montarse uno mismo la placa, no veo que haya otra diferenciación con respecto al Arduino Mega original...

Desde aquí animo a que más gente se pase a aportar su grano de arena.

Un saludo a Gil y a todos :wink:

Gracias de nuevo por la información, lo mirare mañana.

Al final con los condensadores raros/amarillos, que por lo visto son de tantalio, los he quitado, de hecho he modificado el conversor de corriente de 12V a 5V por el de la rev3, ahora usa condensadores electrolíticos. Ahora ya tengo todos en la lista de ebay y salen por 20€gi + pcb, aunque habría que mirar la calidad de los cristales y alguna cosa mas.

He hecho algunos cambios respecto a la versión anterior:

  • Añadí los pines de alimentación para el que no quiera usar el jack de 21mm
  • Cambie el jack de 21mm por otro con agujeros mas pequeños para facilitar la soldadura.
  • Añadí una segunda tira de pines para los pines digitales y para que la placa sea compatible con las placas de topos.
  • Añadí un pin de 3.3v a la tira de pines para el LCD o otros módulos.
  • Quite la librería que usaba como placa base y ahora esta todo con conectores sueltos.

Lo cierto es que no hay muchas diferencias con el Mega, aunque ahora sumando las nuevas ya van siendo mas :slight_smile:
Puerto para módulos xbee, otro puerto para un modulo bluetooth, otro para un LCD o lo que sea y una hilera de pines para placas de topos. Lo de los pines secundarios para la alimentación no lo cuento como mejora.

Aunque ahora me tocara re-routear todo de nuevo :cold_sweat:

giltesa:
Gracias de nuevo por la información, lo mirare mañana.

Al final con los condensadores raros/amarillos, que por lo visto son de tantalio, los he quitado, de hecho he modificado el conversor de corriente de 12V a 5V por el de la rev3, ahora usa condensadores electrolíticos. Ahora ya tengo todos en la lista de ebay y salen por 20€gi + pcb, aunque habría que mirar la calidad de los cristales y alguna cosa mas.

He hecho algunos cambios respecto a la versión anterior:

  • Añadí los pines de alimentación para el que no quiera usar el jack de 21mm
  • Cambie el jack de 21mm por otro con agujeros mas pequeños para facilitar la soldadura.
  • Añadí una segunda tira de pines para los pines digitales y para que la placa sea compatible con las placas de topos.
  • Añadí un pin de 3.3v a la tira de pines para el LCD o otros módulos.
  • Quite la librería que usaba como placa base y ahora esta todo con conectores sueltos.

Lo cierto es que no hay muchas diferencias con el Mega, aunque ahora sumando las nuevas ya van siendo mas :slight_smile:
Puerto para módulos xbee, otro puerto para un modulo bluetooth, otro para un LCD o lo que sea y una hilera de pines para placas de topos. Lo de los pines secundarios para la alimentación no lo cuento como mejora.

Aunque ahora me tocara re-routear todo de nuevo :cold_sweat:

Es verdad q ahora tiene más diferencias, y la verdad es q tiene buena pinta la placa, va por buen camino 8)

Sabes si el FT232RL viene programado (listo para usar) o hay que cargarle algn programa/configuración antes?
Que programador vas a utilizar para cargar el bootloader en el Atmega?

Son buenas preguntas.

A la primera no estoy del todo seguro, sé que todos los Arduinos, salvo el Nano, vienen con una tira de 4 pines para conectar "algo" directamente al chip FTDI, no tengo claro si es para programarlo (si hiciera falta) o para otra cosa. Creo que solo hay que programarlo si quieres cambiar algo de la configuración de por defecto.

http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT232R.pdf:
Internal EEPROM. The internal EEPROM in the FT232R is used to store USB Vendor ID (VID), Product ID (PID), device serial number, product description string and various other USB configuration descriptors. The internal EEPROM is also used to configure the CBUS pin functions. The FT232R is supplied with the internal EEPROM pre-programmed as described in Section 8. A user area of the internal EEPROM is available to system designers to allow storing additional data. The internal EEPROM descriptors can be programmed in circuit, over USB without any additional voltage requirement. It can be programmed using the FTDI utility software called MPROG, which can be downloaded from FTDI Utilities on the FTDI website (www.ftdichip.com).

En cuanto a programar el ATmega, tenia pensado usar este programador, lo he usado una vez para probarlo y funciono bien. Pero si eso fallara entonces usaría otro Arduino para cargar el bootloader.

Me ha llevado toda la tarde pero ya lo tengo ruteado de nuevo. Me ha quedado mucho mejor :slight_smile:

Me ha gustado que le hayas puesto las conexiones para los módulos blueetooth chinos, yo también lo tengo como " a must" para mi próxima placa.

yOPERO:
Me ha gustado que le hayas puesto las conexiones para los módulos blueetooth chinos, yo también lo tengo como " a must" para mi próxima placa.

Si, lo cierto es que disponer de un modulo bluetooth en el Arduino es la mar de útil, y si encima viene de serie pues mejor que mejor :slight_smile: