Impresión desde USB

Aunque Klipper está enfocado en usarlo remotamente, en ocasiones puede sernos útil el disponer nuestros gcodes en un pendrive USB para imprimirlos localmente.

  • Primero de todo nos fijaremos cuál es el punto de montaje de nuestro USB normalmente suele ser en /media o creando un nuevo bloque dentro de /dev/

  • Para poder identificar nuestro punto de montaje podemos usar el comando fdisk... en el siguiente ejemplo veremos que nos ha montado nuestro USB en /dev/sdc1

Normalmente el comando fdisk requiere permisos root por lo que es necesario lanzarlo con sudo delante para introducir nuestro password root

sudo fdisk -l
Salida del comando anterior:
Disk /dev/sdc: 7.4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdc1  *     8192 15523839 15515648  7.4G  b W95 FAT32
  • Montaremos nuestro USB en /media/usb

mount /dev/sdc1 /media/usb/

Como montar de forma permanente nuestro USB:

El proceso seguido en los pasos no es permanente dado que dejará de funcionar al reiniciar nuestro host, si queremos que sea permanente:

  • editaremos nuestro fichero /etc/fstab

sudo nano /etc/fstab
  • añadiremos nuestro punto de montaje añadiendo esta linea prestando atencion al sistema de archivos que usemos... normalmente vfat

/dev/sdc1       /media/usb           vfat    defaults        0       0
  • IMPORTANTE!!! en el punto anterior os sugerimos el punto de montaje basado en un bloque /dev/ que dependiendo del numero de USB que pongamos puede variar. En ese caso lo mas correcto seria usar el UUID

  • Podemos encontrar nuestro UUID con el siguiente comando

ls -l /dev/disk/by-uuid/*
lrwxrwxrwx 1 root root 10 Mar 27 23:38 /dev/disk/by-uuid/2016-08-30-11-31-31-00 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Mar 27 23:38 /dev/disk/by-uuid/3eccfd4e-bd8b-4b5f-9fd8-4414a32ac289 -> ../../sda1
lrwxrwxrwx 1 root root 10 Mar 27 23:38 /dev/disk/by-uuid/4082248b-809d-4e63-93d2-56b5f13c875f -> ../../sda5
lrwxrwxrwx 1 root root 10 Mar 28 01:09 /dev/disk/by-uuid/8765-4321 -> ../../sdc1
lrwxrwxrwx 1 root root 10 Mar 27 23:38 /dev/disk/by-uuid/E6E3-F2A2 -> ../../sdb2
  • Ahora una vez identificado el UUID de nuestro USB ajustaremos nuestro /etc/fstab usando este en lugar del bloque /dev

/dev/disk/by-uuid/8765-4321       /media/usb           vfat    defaults        0       0
  • Por último y ya sea mediante bloque /dev o mediante UUID montaremos nuestras unidades con el siguiente comando

mount -a

Si queremos tener compatibilidad con otros sistemas de archivos podemos:

  • NTFS

sudo apt install ntfs-3g
  • exFAT

sudo apt install exfat-fuse
sudo apt install exfat-utils
  • Averiguaremos cuál es nuestro path en Klipper para nuestros gcodes, normalmente suele ser ~/printer_data/gcodes

Para asegurarnos en que path guardamos nuestros gcodes podemos revisar nuestros ficheros de configuración y encontrar la sección [virtual_sdcard] donde encontraremos esta información.

[virtual_sdcard]
path: ~/printer_data/gcodes
on_error_gcode: CANCEL_PRINT

En el caso que usemos, por ejemplo, una distribución basada en MainsailOS podremos encontrarlo dentro de mainsail.cfg

  • Dentro de nuestro path en Klipper para almacenar nuestros gcodes crearemos una nueva carpeta llamada usb -> ~/printer_data/gcodes/usb

mkdir ~/printer_data/gcodes/usb
  • Crearemos un link simbólico de nuestro punto de montaje USB /media a nuestro nuevo directorio

ln -s /media/usb /home/pi/gcode_files/usbs

Podemos mirar nuestros puntos de montaje con:

mount | grep sdc1
/dev/sdc1 on /media/usb type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=utf8,shortname=mixed,errors=remount-ro

Resolución de problemas:

En ocasiones puede que no se monten las unidades correctamente al iniciarse el proceso antes de que estas estén disponibles. La forma más sencilla es editando el fichero /etc/rc.local

sudo nano /etc/rc.local

y añadiendo las siguientes líneas encima de exit 0

sleep 20
sudo mount -a 

Última actualización