Archivo de la categoría: Informática

Actualizar firmware de impresora 3D CTC Prusa i3 Pro B

La impresora CTC DIY Prusa i3 Pro B es una impresora 3D barata y que para el precio que tiene se pueden obtener unos buenos resultados, pero tiene el problema de que no podemos actualizarle el firmware. En este artículo explico el proceso que he seguido para conseguirlo.

Esta impresora está basada en una Geeetech Prusa i3, y por tanto usa la misma placa controladora (motherboard), la GT2560, que para simplificar es un Arduino Mega2560 con más cosas. La diferencia, y esto es importante a la hora de actualizar el firmware aunque lo veremos más adelante, es que el microcontrolador no es el ATmega2560, sino el ATmega1280.

El firmware que lleva la impresora es Marlin, así que sabiéndolo lo primero que se nos ocurre es que sólo tendríamos que bajarnos los fuentes de Marlin, cargarlos en el Arduino IDE, conectar la impresora al ordenador por USB y subir Marlin al Arduino. ¡Y es así de fácil! pero cuando tengamos cargado el booloader en el Arduino de la impresora. Este bootloader es el que nos permite actualizar el microcontrolador del Arduino sin tener que usar un programador externo, y desgraciadamente el fabricante ha metido Marlin en la placa pero sin el bootloader.

Aunque se puede grabar usando un programador de microcontroladores, el método que voy a explicar es usando otro Arduino como programador.

Material necesario

  • Placa GT2560
  • Arduino (vale el UNO o Duemilanove). Aunque se podrían usar otros.
  • Cables para pins de un hilo Macho-Hembra, a ser posible de colores para distinguirlos mejor.
  • Arduino IDE reciente (yo he usado 1.8.3)

Paso 1. Descargar e instalar Arduino IDE

Arduino IDE es el entorno que nos permitirá grabar los microcontroladores de Arduino. Descargar de la web de Arduino y seguir los pasos de instalación. Es fácil.

Paso 2. Grabar ArduinoISP en el Arduino programador

ArduinoISP es un programa que grabaremos en el Arduino que usaremos como programador, así que conectamos el Arduino al ordenador y abrimos el Arduino IDE. Una vez abierto le damos a Archivo->Ejemplos->ArduinoISP->ArduinoISP.

A continuación tenemos que seleccionar el modelo de Arduino que vamos a usar como programador. Eso se hace en Herramientas->Placa.

Y por último le damos al botón de arriba a la izquierda que es un círculo con una flecha indicando a la derecha. Con ese botón le decimos que grabe el programa en el Arduino.

Empezará grabar y cuando termine, si todo ha ido bien, debería aparecer algo así en la parte de abajo del IDE:

Vale, con esto ya tenemos listo el Arduino para poder actualizar la placa de la impresora.

Paso 3. Conexión del Arduino a la placa GT2560

Antes de nada, asegúrate de que tanto el Arduino que usaremos como programador como la placa GT2560 están desconectados tanto del ordenador como de la corriente eléctrica. Quita el conector de corriente de la placa para asegurarte.

Y ahora tienes que hacer las conexiones según la siguiente imagen:

Este es el aspecto que debe tener una vez conectado:

Una vez hechas todas las conexiones, conectamos el Arduino al ordenador por USB. Si todo va bien, deberían encenderse tanto el Arduino como la placa GT2560 de nuestra impresora.

Paso 4. Grabación del bootloader

Abrimos el Arduino IDE y seleccionamos una nueva placa: Herramientas->Placa->Arduino/Genuino Mega or Mega 2560

Ahora un paso importante. Como la placa que trae la impresora CTC no es exactamente la misma GT2560, tenemos que cambiar el procesador, ya que la original trae un ATmega2560 y esta trae un ATmega1280, así que tenemos que seleccionarlo en: Herramientas->Procesador->ATmega1280

Si lo hemos hecho bien, en la parte de abajo a la derecha del IDE debe aparecer lo siguiente:

Ahora hay que decirle que grabe el Bootloader. Hay que darle al menú Herramientas->Quemar Bootloader. Lo puedes ver en la imagen siguiente:

Quemar bootloader en arduino

El IDE empezará a grabar el bootloader (tarda un rato) y cuando termine podrás ver una luz roja parpadeando en la placa GT2560. Eso indicará que el bootloader está cargado.

¡Ya está! Ahora podemos desconectar el Arduino que hemos usado como programador y no conectar aún la corriente externa.

En este punto tenemos la impresora sin firmware, pero lista para cargarle uno actualizado y con posibilidad de guardar los ajustes a la EEPROM, que realmente es lo que más echaba de menos y lo que me motivó a hacer esto.

Paso 5. Descarga del nuevo firmware

El firmware que vamos a usar es una modificación del Marlin original modificado por mí para que funcione en esta impresora. Se puede descargar de aquí. Si tienes alguna mejora que proponer, puedes ver las modificaciones en mi fork del repositorio, concretamente en la rama que he creado para ello.

Paso 6. Grabación del firmware

Una vez descargado, descomprimimos el ZIP en cualquier parte del disco duro y abrimos el Arduino IDE. Le damos a: Archivo->Abrir y buscamos en la carpeta donde hemos descomprimido el ZIP un fichero que se llama Marlin.ino. Una vez abierto, nos aseguramos de que seguimos teniendo seleccionada la placa Arduino/Genuino Mega or Mega 2560 y el procesador ATmega1280. Esto último es muy importante.

Si todo está bien, pulsamos sobre el botón «Subir», ese pequeño de arriba a la izquierda con una flecha señalando a la derecha. En ese momento el Arduino IDE comenzará a grabar el firmware en la placa, esperamos un rato y nos avisará de que ha terminado. Esperemos que sin problemas. :-)

¡Se acabó! Una vez que termine de grabar podrás ver cómo la impresora se reinicia y verás la nueva versión de Marlin en el LCD. Ya tienes el firmware actualizado y funcionando, sólo te queda hacer los ajustes necesarios para empezar a imprimir, con la novedad de que ahora podrás grabarlos en la EEPROM.

Espero que todo este tocho te haya servido de ayuda y espero tus comentarios.

ACTUALIZACIÓN

Tenemos un grupo de Telegram para hablar sobre la CTC Prusa i3. Si estáis interesados, sois bien recibidos.

Cómo modificar la configuración por defecto del Torrent en la Fonera 2.0n

Cuando instalas el programa de descarga de ficheros Torrent en la Fonera 2.0n (Transmission), éste viene con una configuración por defecto que lo más probable es que no te interese.

Es verdad que desde la interfaz web se pueden configurar ciertas cosas, como por ejemplo los límites de velocidad de subida y descarga, el puerto, etc…

Transmission Preferences

Pero también es verdad que muchas veces cuando cambio algo ahí no me guarda los cambios; o quiero cambiar alguna otra cosa, como por ejemplo el ratio subida/descarga..

En fin, esto es lo que he hecho para hacer estos cambios:

  1. Lo primero que necesitas es tener instalada la versión DEV (para desarrolladores) del firmware para La Fonera.
  2. Ahora hay que entrar por SSH:
    ssh root@192.168.2.253
    Sustituye 192.168.2.253 por la IP de tu Fonera.
  3. Asumiendo que ya tienes instalada la aplicación de Torrents, entra en la administración por web y para la aplicación. Dale a Panel de Control -> Torrent y luego a Desactivar:

    Desactivar Torrent Fonera

  4. Nos vamos al directorio donde están instaladas las aplicaciones de la Fonera. Normalmente es el directorio FoneraApps del disco duro que tengas conectado. En mi caso:

    # cd /tmp/mounts/almacen/FoneraApps/
    # ls
    torrent.2.3.6.0.fmg torrent.2.3.6.0.swp torrent.2.3.6.0.var
    #
  5. Esos ficheros no son más que imágenes de disco. La configuración que queremos tocar está en el fichero torrent.2.3.6.0.var, así que vamos a montarlo en /mnt:

    # mount -o loop torrent.2.3.6.0.var /mnt

  6. Si se ha montado bien, nos vamos a /mnt y vemos qué hay:


    # cd /mnt
    # ls
    blocklists lost+found resume settings.json stats.json torrents
    #

  7. En el fichero settings.json están todos los parámetros que podemos tocar, así que lo editamos:

    # vim settings.json

    Este es el contenido de mi fichero:


    {
    "alt-speed-down": 50,
    "alt-speed-enabled": false,
    "alt-speed-time-begin": 540,
    "alt-speed-time-day": 127,
    "alt-speed-time-enabled": false,
    "alt-speed-time-end": 1020,
    "alt-speed-up": 50,
    "bind-address-ipv4": "0.0.0.0",
    "bind-address-ipv6": "::",
    "blocklist-enabled": false,
    "dht-enabled": true,
    "download-dir": "\/tmp\/mounts\/almacen\/\/torrent",
    "encryption": 1,
    "lazy-bitfield-enabled": true,
    "message-level": 2,
    "open-file-limit": 32,
    "peer-limit-global": 240,
    "peer-limit-per-torrent": 60,
    "peer-port": 2099,
    "peer-port-random-high": 65535,
    "peer-port-random-low": 49152,
    "peer-port-random-on-start": false,
    "peer-socket-tos": 0,
    "pex-enabled": true,
    "port-forwarding-enabled": false,
    "preallocation": 0,
    "proxy": "",
    "proxy-auth-enabled": false,
    "proxy-auth-password": "",
    "proxy-auth-username": "",
    "proxy-enabled": false,
    "proxy-port": 80,
    "proxy-type": 0,
    "ratio-limit": 2,
    "ratio-limit-enabled": true,
    "rpc-authentication-required": true,
    "rpc-authentication-system": true,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true,
    "rpc-password": "xxxxxxxxxxxx",
    "rpc-port": 9091,
    "rpc-username": "",
    "rpc-whitelist": "*.*.*.*",
    "rpc-whitelist-enabled": true,
    "speed-limit-down": 200,
    "speed-limit-down-enabled": false,
    "speed-limit-up": 20,
    "speed-limit-up-enabled": true,
    "upload-slots-per-torrent": 14,
    "watch-dir": "\/tmp\/mounts\/almacen\/\/torrent",
    "watch-dir-enabled": true
    }

    Yo sólo he tocado las opciones de límites de velocidad y ratio, pero aquí tienes una descripción de todas las opciones para adaptarlo a tus necesidades.

  8. Una vez modificado a tu gusto, desmontamos el sistema de ficheros:

    # cd ; umount /tmp

  9. Volvemos a lanzar la aplicación de Torrents desde Panel de Control -> Torrents

Una vez hecho todo esto, ya deberías tener funcionando todo a tu gusto… :-)

Recuperar Grub en Ubuntu 9.10 después de instalar Windows

He hecho una instalación fresca en mi PC de la nueva versión de Ubuntu (Kubuntu en realidad), que ya tocaba después de venir actualizando una tras otra desde no sé cuando. Aprovechando la instalación fresca, he montado todo con LVM (volúmenes lógicos).

Como por desgracia todavía tengo que tener un Windows instalado, decidí probar Windows 7 para darle una oportunidad. Y aquí metí la pata, porque como ya sabemos, Windows no respeta nada y se carga lo que haya en el MBR del HDD, así que perdí el arranque del Linux y sólo arrancaba Windows.

Para intentar solucionarlo fui a tirar del maravilloso disquete de Super Grub Disk que guardo en un cajón, pero me acordé de que en esta versión de Ubuntu el Grub es nuevo, así que no iba a arreglar nada. Me puse a buscar otra forma, y aunque la encontré, nada decía de arreglar el desaguisado cuando estabas usando LVM.

Uniendo un poco de información de aquí y de allá he podido recuperarlo.

Estos son los pasos que hay que seguir:

  1. Arrancar con un CD Live de Ubuntu.
  2. Abrir un terminal «gnome-terminal» o «Konsole».
  3. sudo apt-get install lvm2
  4. sudo pvscan
  5. sudo vgscan
  6. sudo vgchange -a y
  7. sudo lvscan
  8. Identificamos las particiones: sudo fdisk -lu
  9. sudo mount /dev/grupo/lvroot /mnt
  10. sudo mount /dev/sda5 /mnt/boot
  11. sudo mount –bind /dev /mnt/dev
  12. sudo mount -t proc none /mnt/proc
  13. sudo mount -t sysfs none /mnt/sys
  14. sudo chroot /mnt
  15. update-grub
  16. grub-install /dev/sda
  17. exit
  18. sudo umount /mnt/sys
  19. sudo umount /mnt/proc
  20. sudo umount /mnt/dev
  21. sudo umount /mnt/boot
  22. sudo umount /mnt
  23. Reiniciar

NOTA: Ahí están puestas mis particiones como ejemplo; por supuesto, cada sistema puede ser distinto y habrá que adaptar un poco los pasos.

Campus Party 1999, la segunda a la que fui

Madre mía… En una lista de correo que tenemos unos colegas, uno ha puesto el enlace a un vídeo de Youtube que es un montaje que hizo nuestro amigo JLuis con los aproximadamente 20 tíos de Huelva que fuimos a la Campus Party en 1999; sin duda, la party en la que mejor me lo he pasado.

Luego de esa fui a las de 2000 y 2001, pero no fueron igual… como en Mollina, creo que en ninguna parte.. ;)

A la mayoría que lea esto no le importará nada, pero lo dejo aquí puesto para acordarme de lo bien que lo pasamos ¡¡hace 10 años!!

Mmmm… por cierto, esto me recuerda a la captura de pantalla del programa HYNews… se puede ver un email de David a mi en 1996… ¡¡trece años!! :D

Cherokee y rTorrrent

Como mi amigo JLuis me preguntó si podía usar Cherokee con rTorrent, me puse a preparar una entrada explicando cómo configurarlo todo; pero hablando con Álvaro llegué a la conclusión de que iba a ser mejor invertir ese tiempo en escribir un asistente para Cherokee-Admin, así que ayer subí un parche que implementa el asistente que permite configurar Cherokee para conectar con rTorrent.

Tan sólo tendríais que configurar rTorrent poniendo algo como esto en vuestro rtorrent.rc:

scgi_port = localhost:5000

La parte de Cherokee la hará el asistente. Disponible ya en la versión 0.99.24.

¿Cómo? ¿que todavía no usas Cherokee? ¡¿A qué estás esperando?! :D