Reparación ARDUINO UNO

Sustitución del interface USB (ATMEGA 16U2) y del regulador de 5V (AMS1117), en el Arduino UNO. Localización de los componentes de Arduino UNO v3, siguiendo su esquema eléctrico. Descarga del software FLIP de ATMEL, y proceso de instalación en el PC. Recarga del fichero ‘flash’ correspondiente al Arduino UNO, en el nuevo chip (ATMEGA 16U2) que se ha sustituído. Comprobación de funcionamiento del módulo Arduino UNO, después de la reparación.

Esquema: Arduino UNO (v3)
Esquema: Arduino UNO (v3)

Para sustituir el chip ATMEGA 16U2 es necesario disponer de un soldador de aire caliente. Sin embargo, el regulador de 5V (AMS1117), a pesar de que es un componente SMD, podría sustituirse con un soldador para electrónica de tipo convencional.  Como podemos ver en el esquema anterior, el chip ATMEGA 16U2 es un micro controlador programable, y es necesario cargar un fichero  en su memoria ‘flash’ cuando se sustituye. Para programar la memoria ‘flash’ utilizaremos el software del fabricante ATMEL, el cual podemos descargar desde su página Web en el siguiente enlace:

 http://www.atmel.com/tools/flip.aspx

Una vez que hayamos conectado el módulo Arduino con el PC, mediante su conexión USB. Podremos comprobar con el administrador de dispositivos de Windows si nuestro PC necesita el driver o ya lo tiene instalado. En caso de que tengamos que instalar el driver, lo haremos apuntando a la carpeta en la cuál hayamos instalado el software FLIP…

C:\Program Files (x86)\Atmel\Flip 3.4.7

Una vez que haya detectado el dispositivo nuestro PC, podremos cargar el archivo ‘flash’ que se corresponda con nuestro dispositivo Arduino (UNO, Mega, etc). El archivo que tenemos que cargar está en formato hexadecimal, y lo podemos encontrar en nuestro PC, dentro de la carpeta de Arduino

C:\Program Files (x86)\Arduino\hardware\arduino\avr\firmwares\atmegaxxu2\arduino-usbserial

Software: FLIP
Software: FLIP

Dentro de esta carpeta encontraremos varios ficheros, elegiremos el que se corresponda con nuestro dispositivo Arduino. Por ejemplo para el Arduino UNO, podemos cargar el fichero:

Arduino-usbserial-atmega16u2-Uno-Rev3.hex 

Puedes ver la reparación y todo el proceso de programación en el siguiente video:

Stick LED programable #2

Personalización de los textos y gráficos que aparecen en el Stick LED, modificando el firmware con un editor hexadecimal. Instalación del software de control Stick.exe y programación del texto que se almacena en la memoria RAM del Stick LED.

Puedes descargar este software de forma gratuita desde el siguiente enlace: Install_Stick_v1.04.rar

Este programa funciona bajo Windows.  Para instalar hay que descomprimir el archivo .rar  y ejecutar el archivo .exe siguiendo las indicaciones del instalador.

Para modificar  los textos fijos de la memoria ROM, es necesario editar el fichero del firmware antes de programar el micro controlador AT89S52. Podemos utilizar cualquier editor hexadecimal, o hacerlo desde el propio interface de programación. En total se pueden modificar 19 mensajes, los 4 primeros dobles (8 mensajes) y los 11 siguientes simples.  La matriz completa de cada mensaje está compuesta por 48 columnas y 16 filas (número de diodos LED del Stick). La imagen completa tiene una resolución de 16×48 = 768 pixel. Para poder escribir los textos de forma sencilla,  el firmware utiliza un Font de caracteres de 16×6, y así los textos se introducen en ASCII, pudiendo editarse directamente desde el teclado del PC.

Editar ROM
Editar ROM

Como puede apreciarse en la imagen anterior, todos los caracteres deben escribirse en la ROM con letras mayúsculas. Los caracteres de la tabla que se muestran con el fondo de color verde, están asociados a los gráficos que se almacenan en la ROM. En total hay 6 gráficos almacenados, y cada uno de ellos ocupa 4 códigos de la tabla. La correspondencia de los códigos de algunos caracteres en minúscula de la tabla ASCII, son traducidos en gráficos cuando se muestran en el Stick LED.

Interface RS-232
Interface RS-232

Para poder modificar el mensaje doble que se almacena en la memoria RAM, es necesario intercalar un interface entre el Stick y el PC o dispositivo móvil. En este caso he utilizado un interface convencional RS-232 (ver imagen anterior). También podría utilizarse un interface TTL-USB, TTL-Bluetooth, etc.

Software: Stick.exe
Software: Stick.exe

En la imagen anterior se muestra la pantalla del software de programación Stick.exe. Una vez conectado el puerto serie del PC con el Stick siempre encendido y mediante el interface, sólo sería necesario editar los dos textos y enviarlos. El software mostrará un acuse de recibo al final del envío, o mostrará un mensaje de error en caso de que no se reciba la confirmación desde el Stick.

Stick LED programable #1

Stick de 16 LEDMontaje del kit Shake Stick Flash, de 16 LED por columna. El circuito original incluye el micro controlador AT89S52, y ya viene programado con 4 imagenes diferentes. Lo interesante de este kit es que se incluye el conector ISP (In-system programming), y esto facilita su uso como plataforma de desarrollo para realizar prácticas con este tipo de micro controladores. Principios de funcionamiento del Stick LED (persistencia del ojo humano), descripción del esquema eléctrico, montaje y diseño de un nuevo firmware. Este firmware permitirá la presentación de 16 imagenes diferentes (gráficos o textos) y uno de sus mensajes podrá reprogramarse a través del puerto serie. Los otros 15 mensajes, almacenados en ROM, podrán modificarse editando el archivo del firmware de forma muy simple.

STICK: persistencia del ojo humano
STICK: persistencia del ojo humano

El principio de funcionamiento del Stick LED está basado en la persistencia que tiene el ojo humano. El ojo hace que cualquier imagen vista se grabe en la retina durante 100 mSeg. aproximadamente. Si desplazamos la columna del Stick con los 16 diodos LED encendidos a una velocidad inferior a 100 mSeg., nuestra retina apreciará una imagen continua y plana, con la forma del movimiento que hemos descrito. Si durante ese tiempo (<100 mSeg.) hacemos que los diodos LED se enciendan y apaguen con un intervalo de tiempo fijo, veremos el mismo arco luminoso, pero mostrando la mitad de las líneas verticales apagadas. Para mostrar gráficos o letras, sólo tendremos que codificar los puntos de cada columna y presentarlos en  el intervalo de tiempo adecuado… y eso es lo que hará el micro controlador.

Este firmware se puede descargar de forma gratuita desde el siguiente enlace: J_RPM_v1_STICK.HEX

Montaje: Stick 16 LED
Montaje: Stick 16 LED

Este kit incluye un portapilas para utilizarlo con dos baterías de tipo AAA. Esto supone que si utilizamos dos pilas de 1,5 V estaríamos alimentando el circuito con 3V. Aunque con esta tensión podría llegar a funcionar el micro controlador, estaría funcionando muy cerca del umbral mínimo… y dejaría de funcionar en cuanto las pilas estuvieran un poco descargadas. Además, la luminosidad que obtendríamos del Stick sería bastante baja. Para evitar estos problemas, la mejor solución es alimentar el circuito con una batería recargable, y añadir un circuito de carga con protección (TP4056) junto con otro circuito ‘Step UP’ que eleve y estabilice la tensión de salida hasta 5V.

Esquema: Stick Flash
Esquema: Stick Flash

En el esquema se muestra la numeración de los componentes, según aparece en la serigrafía del PCB (circuito impreso). Si queremos programar el micro controlador utilizando el conector ISP (In-system programming), es conveniente sustituir la resistencia del circuito Reset, original de 1K5, por otra de 10K.

Con el nuevo firmware que se adjunta, es posible mostrar 16 imágenes diferentes, 5 de ellas son dobles. Al final dispondremos de 4 imágenes dobles y 11 simples almacenadas en la memoria ROM, y  otra imagen doble almacenada en la memoria RAM. Esta última podremos reprogramarla cuantas veces queramos, enviando los datos desde un PC o dispositivo móvil. Para ello tendremos que intercalar un interface (RS232, RS485, IR, Bluetooth, etc) y conectarlo a las líneas RX/TX del Stick (UART). Los textos de la memoria ROM también podremos sustituirlos, pero lo haremos con un editor hexadecimal, modificando los textos del firmware antes de programar el micro controlador.

Intervalos de tiempo (Stick LED)
Intervalos de tiempo (Stick LED)

Con el fin de mejorar la presentación de los mensajes más cortos, el micro controlador modificará los intervalos de tiempo en función del número de caracteres-columnas que tenga que presentar (ver la imagen anterior).