miércoles, 18 de mayo de 2016

Tutorial Ethminer headless

Como ejecutar Ethminer en Ubuntu 15.10 sin pantalla y sin esfuerzo

El objetivo de esta guía es tener un sistema donde poder ejecutar Ethminer sin pantalla y poder controlarlo remotamente
Requisitos necesarios:
  • Ubuntu 15.10 Desktop instalado
  • GPU ATI + drivers Oficiales instalados
  • Conocimientos basicos de unix shell
Obviamente para poder instalar el sistema necesitamos un display para introducir los comandos necesarios, luego de acabar con el procedimiento podemos quitarlo y usar el sistema en modo Headless
Notas: se puede instalar Ubuntu sin pantalla, pero requiere de un conocimiento avanzado "https://help.ubuntu.com/community/Installation/NetworkConsole"

Paso 1 - instalacion de paquetes necesarios

sudo apt-get install openssh-server
sudo apt-get install tmux
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethminer

Paso 2 - configuracion de permisos Xserver

Lo que vamos a configurar es el acceso de nuestros comandos al display que tiene abierto el servicio LightDM arrancado por defecto en Ubuntu Desktop, ya que dicho servidor X se ejecuta como root, tenemos que obtener permiso para poder conectarlos a el como usuario no privilegiado, asumimos que el nombre del usuario es "minero".
Notas: el usuario es el que hemos creado durante la instalacion

Configuramos el acceso al usuario minero al comando xauth sin password

sudo echo "minero ALL = NOPASSWD: /usr/bin/xauth" > /etc/sudoers.d/xauth
Notas: si no funciona el comando, crear el fichero manualmente e introducir la linea.

Esto nos permite ejecutar xauth como root y poder obtener y manipular las ACL del servidor X, deberemos poder ejecutar sin requerir la password.
sudo xauth list

Añadir las siguientes lineas al fichero .bashrc del usuario minero

vi .bashrc
...
cookie=`sudo xauth -f /var/lib/lightdm/.Xauthority list | cut -d " " -f 5`
xauth add :0 MIT-MAGIC-COOKIE-1 $cookie
...
Con esto autorizamos al usuario "minero" a usar el display :0 del servidor X arrancado por LightDM, podemos lanzar "xclock" para comprobar que no se muestran errores de autorización.
Notas: hay que volver a entrar con el usuario para que se activen los cambios, o ejecutar desde la shell "source .bashrc"

Paso 3 creacion del script para ethminer

crear un fichero bash script con vi, joe, gedit o similar vi minar.sh
#!/bin/bash
DISPLAY=:0
//parametros de aticonfig para Overclock de R9 390
//aticonfig --adapter=0 --od-setclocks=1150,1600

ETH_ADDRESS="0x4e4d31efaec6ad09759578fe9f43455854cfb9b4"
MINER_PATH="ethminer"
MINER_NAME="ethminer1"
MINER_PARAMS="-G -v 9 -F http://eth1.nanopool.org:8888/$ETH_ADDRESS/$MINER_NAME"

tmux new-session -d
tmux rename-session 'mining-session'
tmux split-window
tmux split-window -h
tmux split-window -t 0 -h

tmux send-keys -t 0 "$MINER_PATH $MINER_PARAMS" enter
Este script lanza un proceso de "tmux" en background ejecuta el comando de ethminer con la configuracion de pool y direccion Podemos recuperar la sesion de tmux con
tmux attach
Notas: podemos encontrar infinidad de tutoriales sobre tmux en https://www.google.es/search?q=tmux+tutorial+español&oq=tmux+tutorial

Ruegos y preguntas

... ...

lunes, 4 de enero de 2016

Arduino + Modulo Wifi ESP8266

Este pequeño tutorial pretende servir de introducción al manejo del modulo Wifi ESP8266 con Arduino IDE sin depender de librerías ni herramientas externas

Modulo ESP8266 (ESP-12)















Notas: Aunque en algunos modulos vienen con la etiqueta de certificacion FCC, solo algunos realmente la poseen, en este caso el modulo ESP-12, si parece complir con esta normativa, ver https://fccid.io/2ADUIESP-12#axzz3Wd49oIRfhttp://www.esp8266.com/wiki/doku.php?id=esp8266-module-family

Para este caso vamos a trabajar con el modulo ESP12, que tiene todos los puertos GPIO disponibles, como contrapartida, este modulo viene en formato SMD, con lo cual hay que fabricar un adaptador para poder usarlo en la protoboard.

- Esquema Adaptador ESP-12












Los modulos ESP8266 tienen dos modos de funcionamiento, "normal mode" y "flash mode" este depende de una configuracion de los pines GPIO0 y GPIO2 como se puede ver en este esquema:

(MTDO es GPIO15).

MTDOGPIO0GPIO2ModeDescription
LLHUARTDownload code from UART
LHHFlashBoot from SPI Flash
HxxSDIOBoot from SD-card
* Informacion obtenida de https://github.com/esp8266/esp8266-wiki/wiki/Boot-Process#esp-boot-modes

Para nuestro caso necesitamos GPIO15-> GND y GPIO0->GND, GPIO2 tiene un pull up interno y no necesita conectarse

La conexión mas correcta para nuestro modulo seria:

GPIO0->Resistor 10K a  GND ( Flash Mode )
GPIO2->Resistor 10K a VCC ( 3v3 )
GPIO15->Resistor 10K a GND


- Instalar las herraminta de compilacion desde el board manager

Para instalar el soporte de la placa ESP8266 y similares en Arduino hay que entrar en "Archivo->Preferencias" y configurar una URL extra para el manejo de boards:

La dirección en cuestión es "http://arduino.esp8266.com/stable/package_esp8266com_index.json"


A continuación entramos en "Herramientas->Placa*->Gestor de tarjetas" e instalamos el soporte para "esp8266"


La descarga de las herramientas son mas de 100MB...

Por ultimo para comprobar que tenemos todo preparado nos vamos a "Herramientas->Placa:*->Generic ESP8266 Module" o el modulo que nos interese.

El único valor de los que viene por defecto que nos interesa cambiar, es el "Upload Speed" que cambiaremos de "9600" a "115200" para no desesperarnos entre los Uploads de los sketchs.


Ahora abriremos un Sketch de ejemplo en "Archivo->Ejemplos->ESP8266->Blink", para nuestra versión de board, modificaremos el ejemplo y cambiaremos el valor BUILTIN_LED por el puerto que nos interese, el modulo ESP-12 tiene conectado el GPIO2 al led azul de manera interna.



Aqui se aprecia el mapeo de pins GPIO entre el modulo ESP-12 y Arduino:























Notas: los GPIO son tolerantes a 5v input, pero se recomienda usar siempre 3v3 


Success!!!

Enlaces de interés:



sábado, 14 de marzo de 2015

Programador USB AVR ISP con Attiny85

Esta es una muy interesante alternativa a los programadores comerciales con la que podemos montar un programador usb-avr a un precio muy reducido y totalmente funcional

Pagina principal del proyecto http://www.instructables.com/id/VUSBTiny-AVR-SPI-Programmer/

Los componentes necesarios son bastante básicos, si es cierto que hay que contar previamente con un programador para flashear el Attiny85, con una placa Arduino se puede emular perfectamente, pero eso es otra historia.

Componentes:
  • Attiny45 o Attiny85
  • 2 diodos zener de 3.6v
  • 2 resistencias de 68 ohmios
  • 1 resistencia de 1500k
  • placa de prototipos o similar
He creado mi propio diseño con componentes SMD, que tienen tal que este aspecto:



Renderizado 3D previo:


PCB definitiva:


Como se puede apreciar el proyecto es muy facil de construir, tenemos una guia muy adecuada de uso en este tutorial  https://learn.adafruit.com/usbtinyisp/avrdude

Un pequeño inconveniente del proyecto, es que como hay que modificar los FUSES del ATTINY para deshabilitar la función de RESET, si nos equivocamos programando una flash incorrecta, no se puede volver a acceder a la FLASH, hay que ejecutar una recuperación con un programador especial HVP ( High Voltage Programmer ).

viernes, 5 de diciembre de 2014

Miniaturizando proyectos con Arduino Tiny

Miniaturizando proyectos con Arduino Tiny


Arduino Tiny no es mas que una version adaptada del core de Arduino para hacer uso de los pins IO de la serie de microcontroladores Attiny de Atmel.

Actualmente el proyecto mas estable es Arduino-Tiny https://code.google.com/p/arduino-tiny/ 

Este entorno es compatible con los siguientes modelos:
  • ATtiny84 (84/44/24)
  • ATtiny85 (85/45/25)
  • ATtiny2313 (4313)
Ejemplo del tamaño final de compilación del Sketch Blink para Attiny85:


Ejemplo del tamaño final de compilación de un sketch usando funciones de Serial, LM35, FAN y PWM. 
Notas: Sin la funcionalidad de Serial, el tamaño es de 3206 bytes, con lo cual entraría en la flash de un Attiny45

Como se puede apreciar, se pueden realizar proyectos muy interesantes en un tamaño reducido, tanto lógico como físico.

Guia de uso del entorno Arduino-Tiny:

Descarga del software de la pagina del proyecto el fichero "arduino-tiny-0150-0020.zip"

$ cd arduino-1.5.8/hardware
$ unzip  /arduino-tiny-0150-0020.zip
$ cp tiny/avr/Prospective Boards.txt tiny/avr/boards.txt 
Notas: tambien se puede crear el fichero boards.txt solo con los modelos que necesitemos a partir del original.

Después de arrancar el IDE, elegimos la Placa que nos interese de la lista:


Subir el sketch:

La serie Attiny no tiene Bootloader protegido, también debido a su poco espacio para programas no tendría sentido malgastar espacio, por ese motivo para poder subir los sketchs, necesitamos un programador AVR que pueden ser alguno de los siguientes: 
En el menu "Herramientas - > Programador" tenemos la lista de dispositivos compatibles con el IDE:


A partir de ahora podemos usar el entorno IDE como siempre 

Otras cuestiones

Precios aproximados de los integrados :
  • Atmega328 DIP ( 2,45€ )
  • Atmega168 DIP ( 2,13€ )
  • Atmega88 DIP ( 2€ )
  • Attiny85 DIP ( 1,20€ )
  • Attiny45 DIP ( 1,06 )
Notas: las versiones SMD son bastante mas baratas.

lunes, 15 de julio de 2013

Nueva gastada Nikon D3200

Aprovechando las ofertas del verano me he agenciado una interesante oferta de NikonD3200 + accesorios


Las primeras pruebas han dado unos resultados muy decentes


Continuará...

miércoles, 3 de julio de 2013

Adaptador QFP32 a DIP32

Interesante adaptador de encapsulado QFP32 a DIP32 adquirido en ebay por 15€, permite programar el bootloader de Arduino o similares y luego soldarlo en la PCB sin tener que diseñar un conector ISP con el consecuente ahorro de los problemas que conlleva.




Notas: el pinout no parece ser 1-1 con el zocalo QFP32, sino a partir del 4 del pin DIP corresponde con el 1 del QFP




martes, 11 de diciembre de 2012

Tutorial: Arduino + Display LCD Grafico 128x64

Este modelo de LCD es el más asequible encontrado hasta la fecha , más contando con que soporta conexión en modo serie ( SPI ).

- display grafico LCD 128x64 displaytech 64128N
- Placa Arduino o similar
- libreria U8glib http://code.google.com/p/u8glib/
- Integrado LCX245 o similar ( 74HC4050, etc) (si usamos 5 voltios)

- Display monocromo



Lo primero y más importante de conocer es que este display se alimenta y usa señales de datos con un voltaje de 3.3v, cualquier intento de conectarlo a 5V puede destruir el display de manera irreversible.

Advertencia!!!: NO vale con conectar la alimentación del display a la salida de 3.3V de Arduino, se tiene que utilizar un conversor de niveles lógicos, o un microcontrolador operando a 3.3V.

Para las pruebas he elegido montar una PCB con un circuito conversor con el chip LCX245, igual que el que venden en esta tienda http://www.nkcelectronics.com/5v-to-33v-logic-level-shifter-bo.html , el esquema es muy simple y se puede configurar para una conversión de A[1-8] a B[1-8], o al contrario.

- Schematic realizado con Eagle



- Imagen de la PCB con el IC LCX245


- Paso importante, para configurar el display para conexion Serie SPI, es necesario soldar el puente J3 de la PCB




- Mapa de Conexiones de Arduino a LCD

  • Pin1 > Gnd
  • Pin4 > Mosi
  • Pin5 > Scl
  • Pin 14 > A0
  • Pin15 > Rst
  • Pin16 > Cs
  • Pin17 > 3.3V
  • Pin18 > Gnd
- Datos importantes sobre el backlight

Segun la hoja de especificaciones, el LED que ilumina el backlight del LCD tiene un "Voltaje Forward" de 3.2 voltios, y un consumo de 20miliamperios, con lo cual si lo alimentamos a 3.3 voltios se necesitaría una resistencia teórica de 5 ohmios para no fundir el LED.

según el consumo medido con un multímetro durante las pruebas el LED consume sin resistencia alrededor de 10miliamperios a 3.3 voltios, con lo cual antes de conectarlo conviene medir con un polímetro el consumo para no quemar el LED, o ante la duda, usar una resistencia standard de 220ohmios.

- Esquema de cómo quedaría las conexiones en la protoboard


Una vez comprobado que tenemos las conexiones realizadas, es recomendable hacer una segunda comprobación siempre para evitar sorpresas ( por si acaso ).

- Obtener la version de desarrollo de U8glib, NO vale con la release 1.08
#hg clone https://code.google.com/p/u8glib/
destination directory: u8glib
requesting all changes
adding changesets
adding manifests
adding file changes
added 480 changesets with 3151 changes to 572 files
updating to branch default
555 files updated, 0 files merged, 0 files removed, 0 files unresolved
- Crear un fichero .zip de release y descomprimirlo en el directorio "libraries" de Arduino

#cd u8glib/tools/release/arduino/
#./create_release.sh
...
#cd arduino-1.0-linux/arduino-1.0/libraries
#unzip u8glib_arduino_v1.09pre11.zip
- Abrir el example de U8glib en Arduino

Archivo->Ejemplos->U8glib->Hello World

Para nuestro display tenemos que crear un constructor especifico (que no viene en la lista del ejemplo)

U8GLIB_64128N u8g(13, 11, 10, 9, 8);

De extrema importancia es la definición del pin extra de RESET, sin el que no funciona este display.



Notas: La definición de contraste viene "hardcoded"en la libreria, pero el valor por defecto es mas que suficiente

- Imagen del nuevo display fondo azul led blanco con el ejemplo GraphicTest

- LCD blanco sobre azul




- LCD negro sobre blanco



Se puede apreciar que el contraste del display con fondo blanco es muy superior al de fondo azul, pero para gustos colores.

Documentacion y referencias:







lunes, 3 de diciembre de 2012

PCB made in China

Hacía tiempo que quería enviar a fabricar unas PCBs a una empresa profesional para ver los resultados y comparar precios, tiempos y resultados, después de una espera de unos 30 días aquí están las correspondientes fotos.

- Empresa MakePCB http://www.makepcb.com/

  • Tamaño de la PCB : 85,9 x 21,1
  • Numero de items : 15
  • Tiempo de producción: standard 15 días
  • Tiempo de envío:20 días
  • Precio total: 40,2€
- Fotos varias




El diseño enviado es una placa Jeenode V6 facilitada por Jeelabs

Los resultados son totalmente profesionales, estañado en oro químico, corte de placas con V-score, máscara de soldadura en ambas caras y serigrafía.

Al menos los resultados iniciales son totalmente satisfactorios, tanto en calidad como en precio, el más barato encontrado hasta la fecha.

Pruebas reales con prototipo completo en breve...


miércoles, 28 de noviembre de 2012

Insoladora PCB con led UV. Parte 1

Aunque ya dispongo una insoladora realizada con tubos fluorescentes UV de 8w, me he decidido a montar el mismo mecanismo pero con leds ultravioleta ( 385-400nm UV).

- Requerimientos

  • 108 Leds UV 2000mcd, 20ma, 3.4 Vf ( de ebay )
  • Placas PCB de 100x160 ( rs-online )
  • Maletin de aluminio de ocasion
La idea era fabricar 2 placas de 54 leds cada una, pero al final con el tamaño de una sola es suficiente para la mayoria de mis proyectos.

El circuito es muy básico, son 9x6 leds en series de 3 con una resistencia de 100 ohmios alimentados a 12V, la separacion es de unos 18mm aproximadamente, segun ojimetro.

Coste del asunto:
- PCB 5€
- Leds UV 108 por 7,60€
- Resistencias y cables 2€
- Maletin aluminio 7€

Total: 21,6€ aproximadamente


Worklog

- Prueba basica del led


- Fotolito de la placa e insoladora casera



- PCB revelada


- PCB dandose un baño de burbujas


- PCB finalizando el atacado del cobre


- Resultado del proceso


Como se puede ver hay partes que han sido sobre-expuestas, esto es debido a que estoy usando unas placas fotosensibles de otro proveedor y todavia no he encontrado el punto ideal de insolado.


- Resultado final bastante aceptable




- Efecto de luz UV con 6 leds contra un billete de 20€


- Despues de un buen rato soldando ...


- Tras una rapida visita al bazar de oportunidades del barrio, he encontrado una caja que para mis sorpresa encaja perfectamente en la placa realizada.


- Con los leds encendidos queda muy fashion


- Idea general de como quedaria la caja con la base de metacrilato para la PCB.


- La difusión de los leds tiene algunas zonas oscuras que habrá que ir tuneando




- Detalles de ultima hora:
Los leds tienen un Vf de 3.4, con lo cual la resistencia para 3 leds en serie usando 12v seria de 100, no de 120ohmios.

Continuara en el siguiente capitulo con un circuito temporizador...

martes, 20 de noviembre de 2012

Arduino + RFM12

Ejemplo de comunicación via radio con Arduino usando módulos de radio FM 433Mhz Hope RFM12B

Hardware:

Lo primero que conviene diferenciar, es que estos módulos usan un interface de comunicación SPI
para su manejo con el microcontrolador, a diferencia de otros tipo "easymode" que directamente se conectan a la salida serie del MCU sin ningún tipo de control extra.

Esto conlleva a un mayor tiempo de puesta en marcha del prototipo ya que aumenta el número de
elementos necesarios para hacerlo funcionar, mayor número de entradas de control y mayor complejidad en el protocolo de comunicación.

El beneficio de todo este complejo proceso, es que el módulo permite un gran control
de parámetros de configuracion como pueden ser: frecuencia de operación, sensor de voltaje bateria, modos de ahorro de energia, salida de reloj para MCU configurable, etc.

Otro detalle importante es la diferencia entre las distintas versiones de los modulos que existen, hay que tener claro lo que se compra para luego no encontrarse con sorpresas desagradables.

- Modulo RFM01, 433Mhz solo Recepción, operan a 5 voltios
- Modulo RFM02, 433Mhz solo Transmisión, operan a 5 voltios
- Modulo RFM12, 433Mhz Transmisión/Recepción,, operan a 5 voltios
- Modulo RFM12(B), 433Mhz Transmisión/Recepción, operan a 3,3 voltios

Entre los módulos RFM12B he apreciado que las PCB estan etiquetadas con version 3.0 y en ultimas compras version 4.0, de momento no he investigado a fondo entre las diferencias reales.

Los modulos del modelo RFM01, y RFM02 usan unos comandos de configuracion diferentes a los del RFM12 y las librerías de uso no son compatibles entre si sin modificación por eso nos centraremos en el modelo RFM12B que es el usual de encontrar.

Para solventar el problema de la diferencia de voltaje, sobre todo si usamos una placa Arduino a 5 voltios,
podemos usar un simple divisor de voltaje con resistencias de 20k y 10k

(se pueden usar transceptores de bus 5 a 3.3 voltios como el 74HC4050, o el 74LCX245, como el que se usan en los interfaces para tarjetas SD)

Esta es la imagen de una shield personalizada para usar el módulo, fabricada con "hands & fingers"






Funcionamiento:

Los módulos operan en una banda de 433Mhz mediante el protocolo FSK, para las pruebas podemos usar una antena simple construida con un cable de una longitud de 165mm,





Software:

La mejor libreria para arduino que he encontrado es la creada por Jean-Claude Wippler en su proyecto de Jeenode disponible aqui http://jeelabs.org/pub/snapshots/RF12.zip, aunque la documentación de la misma es mas bien escasas y hay que leer detenidamente los sketchs que trae como ejemplo y el propio código fuente para entender bien los mecanismos de funcionamiento, aunque tampoco es estrictamente necesario.






Otras consideraciones:

  • El modulo elegido es el modelo ALPHA-TRX433S que es un clon del RFM12B de HopeRF pero con un coste algo menor.

Referencias:

- http://jeelabs.org/2009/02/10/rfm12b-library-for-arduino/
- http://blog.strobotics.com.au/2008/01/08/rfm12-tutorial-part1/

Mini Review tiendas y proveedores

Lista de tiendas y opiniones de las mismas en base a las gastadas realizadas por ahora:

- Farnell http://es.farnell.com/ ( proveedor de productos electronica e ingenieria con un gran stock )
Deje de comprar allí despues de tener problemas con la visa-electron, no fueron capaces de arreglar el problema. Puntuacion 3/5.
- RS Online http://es.rs-online.com ( proveedor de productos de electronica e ingenieria con un stock decente)
Los precios varian bastante respecto a otros proveedores segun el tipo de producto, el sistema de envio es de lo mejor que he encontrado. Puntuación 4/5.
- Bricogeek http://www.bricogeek.com/shop/

Tienda online de productos relacionados con Arduino, la mayoria son productos de sparkfun.com, tienen un catalogo de productos y stock bastante limitado, el envio y el trato es excelente. Puntuacion 4/5

- Cole Tech http://stores.ebay.es/CNCOLETECH ( tienda de ebay china )

Articulos relacionados con grabadoras laser co2, muy buena reputacion, precios aceptables, envio ultra-rapido por DHL Avion). Puntuación 4/5

- CNC Plus http://www.cnc-plus.de ( tienda de componentes para CNC)

Tienen unos precios muy buenos en fresadoras Kress, y un catalogo de accesorios para CNC muy interesante. Puntuación 4/5.

lunes, 6 de febrero de 2012

Compilando Arduino 1.0 desde shell

Como compilar sketchs de Arduino 1.0 desde la shell de linux sin dificultad ( o intentarlo )

* Requisitos previos

* Entrar al directorio del ejemplo Blink y descargar el fichero makefile

mrgastoso#:~/arduino-1.0/examples/1.Basics/Blink$
mrgastoso#:~/arduino-1.0/examples/1.Basics/Blink$ wget http://shallowsky.com/software/arduino/Makefile-1.0-v7
mrgastoso#:~/arduino-1.0/examples/1.Basics/Blink$ mv Makefile-1.0-v7 Makefile

* Editar el fichero Makefile y cambiar los siguientes parametros:

TARGET = Blink
ARDUINO_DIR = "directorio de arduino 1.0"
ARDUINO_MODEL = atmega328 o "elegir el modelo de arduino, ante la duda mirar en el fichero arduino-1.0/hardware/arduino/boards.txt"
AVR_TOOLS_PATH = /usr/bin "cambiar si se tiene una ruta diferente del toolchain de gcc avr, en mi caso es /usr/local/avr/bin/"

* El script toma como extension del archivo .pde, asi que antes de nada lo renombramos o copiamos

mrgastoso#:~/arduino-1.0/examples/1.Basics/Blink$ cp Blink.ino Blink.pde

* Ejecutar make, y observar como surge la magia


mrgastoso#:~/arduino-1.0/examples/1.Basics/Blink$ make

/usr/local/avr/bin//avr-g++ -c -mmcu=atmega328p -I. -DF_CPU=16000000L -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/variants/standard    -Os -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -DARDUINO=100 applet/Blink.cpp -o applet/Blink.o 
/usr/local/avr/bin//avr-gcc -c -mmcu=atmega328p -I. -gstabs -DF_CPU=16000000L -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/variants/standard    -Os   -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -DARDUINO=100 /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/wiring.c -o /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/wiring.o 
/usr/local/avr/bin//avr-gcc -c -mmcu=atmega328p -I. -gstabs -DF_CPU=16000000L -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/variants/standard    -Os   -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -DARDUINO=100 /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/wiring_analog.c -o /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/wiring_analog.o 
/usr/local/avr/bin//avr-gcc -c -mmcu=atmega328p -I. -gstabs -DF_CPU=16000000L -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/variants/standard    -Os   -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -DARDUINO=100 /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/wiring_digital.c -o /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/wiring_digital.o 
/usr/local/avr/bin//avr-gcc -c -mmcu=atmega328p -I. -gstabs -DF_CPU=16000000L -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/variants/standard    -Os   -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -DARDUINO=100 /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/wiring_pulse.c -o /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/wiring_pulse.o 
/usr/local/avr/bin//avr-gcc -c -mmcu=atmega328p -I. -gstabs -DF_CPU=16000000L -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/variants/standard    -Os   -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -DARDUINO=100 /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/wiring_shift.c -o /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/wiring_shift.o 
/usr/local/avr/bin//avr-gcc -c -mmcu=atmega328p -I. -gstabs -DF_CPU=16000000L -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/variants/standard    -Os   -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -DARDUINO=100 /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/WInterrupts.c -o /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/WInterrupts.o 
/usr/local/avr/bin//avr-g++ -c -mmcu=atmega328p -I. -DF_CPU=16000000L -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/variants/standard    -Os -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -DARDUINO=100 /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/HardwareSerial.cpp -o /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/HardwareSerial.o 
/usr/local/avr/bin//avr-g++ -c -mmcu=atmega328p -I. -DF_CPU=16000000L -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/variants/standard    -Os -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -DARDUINO=100 /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/WMath.cpp -o /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/WMath.o 
/usr/local/avr/bin//avr-g++ -c -mmcu=atmega328p -I. -DF_CPU=16000000L -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/variants/standard    -Os -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -DARDUINO=100 /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/WString.cpp -o /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/WString.o 
/usr/local/avr/bin//avr-g++ -c -mmcu=atmega328p -I. -DF_CPU=16000000L -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino -I/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/variants/standard    -Os -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -DARDUINO=100 /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/Print.cpp -o /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/Print.o 
/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/Print.cpp: In member function 'size_t Print::print(const __FlashStringHelper*)':
/home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/Print.cpp:44:23: warning: '__progmem__' attribute ignored
/usr/local/avr/bin//avr-ar rcs applet/core.a /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/wiring.o
/usr/local/avr/bin//avr-ar rcs applet/core.a /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/wiring_analog.o
/usr/local/avr/bin//avr-ar rcs applet/core.a /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/wiring_digital.o
/usr/local/avr/bin//avr-ar rcs applet/core.a /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/wiring_pulse.o
/usr/local/avr/bin//avr-ar rcs applet/core.a /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/wiring_shift.o
/usr/local/avr/bin//avr-ar rcs applet/core.a /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/WInterrupts.o
/usr/local/avr/bin//avr-ar rcs applet/core.a /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/HardwareSerial.o
/usr/local/avr/bin//avr-ar rcs applet/core.a /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/WMath.o
/usr/local/avr/bin//avr-ar rcs applet/core.a /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/WString.o
/usr/local/avr/bin//avr-ar rcs applet/core.a /home/mrgastoso/Descargas/arduino-1.0//hardware/arduino/cores/arduino/Print.o
/usr/local/avr/bin//avr-gcc -o applet/Blink.elf applet/Blink.o -L. applet/core.a -Os -Wl,--gc-sections -mmcu=atmega328p -lm
/usr/local/avr/bin//avr-objcopy -O ihex -R .eeprom applet/Blink.elf applet/Blink.hex


   text   data    bss    dec    hex filename
      0   1010      0   1010    3f2 applet/Blink.hex

mrgastoso#:~/arduino-1.0/examples/1.Basics/Blink$

Notas: del mismo autor tambien esta la version para arduino-0.22 : http://shallowsky.com/software/arduino/Makefile-0022-v4

- Referencias

martes, 31 de enero de 2012

Acabado de PCB con mascara de soldadura

- Acabado de PCB con mascara de soldadura estilo supremo ( de pollo )

Convertidor de señaales 5v-3.3v LCX245

Convertidor de señaales 5v-3.3v LCX245

Convertidor de señaales 5v-3.3v LCX245

Placa Arduino Ethernet con ENCJ2860

Placa Arduino Ethernet con ENCJ2860

Placa Arduino Ethernet con ENCJ2860