Los MK/MINI404 son simuladores de las plataformas RAMBO/Einsy Rambo/Buddy. Está desarrollado y funciona de forma nativa en Linux. Es posible montarlo en Windows usando Cygwin, pero aquí iremos por el camino de Linux.
En Prusa Research utilizamos esta herramienta para probar el firmware en desarrollo y hermosas capturas de pantalla para los registros de cambios de Github y nuestra Base del conocimiento. Hay una gama de opciones para la automatización a través de scripts, y es una gran manera de probar tus propias builds personalizadas del firmware o cómo las traducciones de la comunidad formatean, actúan y leen en las pantallas de nuestras diversas impresoras. O tal vez simplemente quieres ver la impresora en acción y explorar la disposición del menú y la solución que hemos ideado, si estás considerando una impresora Original Prusa.
Este es un proyecto que todavía está en marcha. Algunos de los errores o procedimientos menos ágiles que se mencionan aquí pueden haber sido corregidos en este momento y se pueden haber añadido nuevas funcionalidades. Esta guía tiene el objetivo de ser un enfoque de laico para instalar y empezar a jugar con esta maravillosa herramienta, así como un grito al creador conocido como VintagePC.
Se debe instalar una distribución de Linux. Se puede instalar en una VM, pero no cubriremos la instalación y configuración de eso aquí. Ten en cuenta que se han experimentado grandes problemas gráficos bajo VirtualBox en Windows 10.
Aquí, lo estamos ejecutando en Linux Mint (versión ligera Xfce), simplemente porque el escritor lo prefiere. En realidad está desarrollado bajo OpenSUSE, pero las dependencias y los comandos que se describen aquí están basados y probados en Linux Mint. Sin embargo, esta guía debería cubrir la mayoría de las distribuciones basadas en Debian/Ubuntu. Cualquier distro probablemente servirá, pero las dependencias necesarias pueden diferir entre distros. Si no está familiarizado con Linux, te recomendamos que adquieras una distribución basada en Debian, ya que ésta está bien documentada y es para la que esta guía cubre las dependencias.
Un aspecto negativo de esta distro es el tamaño de instalación bastante grande, así que asegúrate de que la VM tiene:
Instalaremos un simulador tras otro, y cubriremos el uso básico en un artículo vinculado. Deberías empezar con MK404, ya que esto es un poco más fácil y puede generar algunos archivos utilizados en el MINI404, que el MINI404 no puede generar por sí mismo (o al menos no tan fácilmente).
Prepárate para convertirte en un súper hacker mientras entramos en... ¡El TERMINAL! Asumiremos que tienes una instalación fresca de Linux aquí, pero el procedimiento no debería importar si ya tienes Linux. Puede que simplemente tengas ya algunos de los paquetes necesarios.
Abre Konsole o cualquier terminal que encuentres (tecla de acceso rápido: ctrl + alt + T) y comienza a actualizar el sistema ejecutando:
sudo apt-get update -y
sudo apt-get upgrade -y
Esto puede llevar algún tiempo. Deja que las líneas se desplacen hasta que vuelvas a tener la línea de comandos. Probablemente hay formas más específicas de hacer esto, pero en aras de la simplicidad, así es como rodamos. Como nos volvemos locos de los bichos.
Instalaremos:
El siguiente comando debería instalar todo lo necesario para ejecutar el simulador.
sudo apt-get install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev cmake libsasl2-dev libsdl1.2-dev libseccomp-dev libsnappy-dev libssh2-1-dev libelf-dev gcc-avr libglew-dev freeglut3-dev libsdl-sound1.2-dev libpng-dev libsdl2-dev libgtk-3-dev libstdc++6 g++-7 python2-dev python3-dev libjpeg-dev libwebp-dev libtiff5-dev libsdl2-image-dev libsdl2-image-2.0-0 libusb-1.0-0-dev ninja-build -y
Compila el compilador (o algo así):
sudo apt-get install build-essential -y
Reinicia la máquina.
sudo reboot
Debe estar en el directorio home/bajo del usuario. En caso de duda, siempre puede utilizar cd para ir al fondo del árbol de directorios. cd ../ te devolverá una carpeta.cd ../../ dos carpetas, etc.. Puede ver las carpetas y archivos en una ubicación con ls. Ahora eres un mago de {linux}, Harry..
git clone https://github.com/vintagepc/MINI404.git
cd MINI404
Loading dependencies-ish things (submodules)
git submodule init
git submodule update
Configura la compilación (puede haber errores si te has saltado algún paso anterior)
./configure --target-list=buddy-softmmu --enable-opengl
Luego compilar. Le di a la VM dos núcleos (la mitad del total de este portátil), así que uso dos núcleos con -j2. Esto llevará algún tiempo.
make -j2
La salida (build) se encontrará en la subcarpeta build/ y se llama qemu-system-buddy. Entra en este directorio. Aquí es donde lanzaremos el simulador y contendrá todos los archivos de firmware, bootloader, capturas de pantalla y archivos de imagen.
cd
cd MINI404/build/
Descarga y descomprime el gestor de arranque y el firmware, utilizando “wget [url]” y “unzip [filename]”. Me he encontrado con problemas en los que el nombre del archivo tenía puntos que no estaban antes de la extensión.
wget https://prusa-buddy-firmware-dependencies.s3.eu-central-1.amazonaws.com/bootloader-mini-1.0.0.zip
unzip bootloader-mini-1.0.0.zip
Descarga el último archivo de firmware de https://prusa3d.com/drivers. Este procedimiento es el mismo para cualquier archivo Zip. Haz clic con el botón derecho del ratón en el botón de descarga y "Copia la dirección del enlace". Pega el enlace después de wget para descargar.
wget https://cdn.prusa3d.com/downloads/firmware/prusa3d_fw_4_3_3_MINI.zip
unzip prusa3d_fw_4_3_3_MINI.zip
Ahora puede iniciar la aplicación con el siguiente comando estando dentro del mismo directorio (MINI404/build/buddy-softmmu/). Se puede utilizar en este estado, pero no tendrá memoria persistente, como guardar los perfiles de las láminas de acero u otros ajustes. Eso lo configuraremos más adelante.
./qemu-system-buddy -machine prusa-mini -kernel prusa3d_fw_4_3_3_MINI.bbf -chardev vc,id=p404-scriptcon,cols=80,rows=24
Si estás en la carpeta raíz puedes evitar entrar primero en el directorio, y hacer tanto la navegación como el lanzamiento de la simulación en un solo comando:
cd MINI404/build/ ; ./qemu-system-buddy -machine prusa-mini -kernel prusa3d_4.3.3_MINI.bbf -chardev vc,id=p404-scriptcon,cols=80,rows=24
https://github.com/vintagepc/MINI404/wiki/Flash-Storage-Persistence
Create files to use as SPIflash(8M) and two st25dv64k blocks (64K).
truncate -s 8M SPIflash.bin
truncate -s 64K st25block1.bin
truncate -s 64K st25block2.bin
Para abrir el MINI404 con estos archivos utiliza:
./qemu-system-buddy -machine prusa-mini -kernel prusa3d_fw_4_3_3_MINI.bbf -chardev vc,id=p404-scriptcon,cols=80,rows=24 -mtdblock SPIflash.bin -pflash st25block1.bin -pflash st25block2.bin
En primer lugar, debes de tener un archivo de imagen para utilizar como una unidad. El MK404 puede hacerlo fácilmente, pero con el MINI404 es un poco más complicado. En pocas palabras, necesitas un archivo de imagen con la terminación .img, y un sistema de archivos FAT32, que puedes usar mtoolspara poner los códigos G.
Descarga el archivo de imagen de 1 GB preconfeccionado con el código G de las ovejas ya cargado. Está comprimido y sólo ocupa 4Mb.
wget http://help.prusa3d.com/wp-content/uploads/2021/11/MINIUSB.zip
Descomprime el archivo que acaba de descargar.
unzip MINIUSB.zip
Si deseas descargar un código G y ponerlo en la "memoria USB", utiliza wget [link] desde un enlace en Prusaprinters. ¡Los comandos de abajo descargarán y copiarán el archivo ya presente!
wget https://media.prusaprinters.org/media/prints/13787/gcodes/339252_4279d4ab-37ae-49d3-bd5e-ee70893b0eec/sheep_pmoews_200um_mini_pla_2h17m.gcode
Pon el archivo de código G en la imagen del archivo (tarjeta sd) usando mtools.
mcopy -vsi FAT32.img sheep_pmoews_200um_mini_pla_2h17m.gcode ::
Para arrancar MINI404
./qemu-system-buddy -machine prusa-mini -kernel prusa3d_fw_4_3_3_MINI.bbf -chardev vc,id=p404-scriptcon,cols=80,rows=24 -mtdblock SPIflash.bin -pflash st25block1.bin -pflash st25block2.bin -drive if=none,id=usbstick,format=raw,file=MINIUSB.img -device usb-storage,drive=usbstick
Sí, ¡también puedes conectarte a la máquina de forma remota! Básicamente diriges el internet de la VM a la impresora. Esto le dará la opción de probar los servidores NTP y el control remoto de la impresora MINI404.
./qemu-system-buddy -machine prusa-mini -kernel prusa3d_fw_4_3_3_MINI.bbf -chardev vc,id=p404-scriptcon,cols=80,rows=24 -mtdblock SPIflash.bin -pflash st25block1.bin -pflash st25block2.bin -drive if=none,id=usbstick,format=raw,file=MINIUSB.img -device usb-storage,drive=usbstick -netdev user,id=mini-eth,hostfwd=tcp::3333-:80
Ahora puedes encontrar la IP en Configuración de red, en el menú de la impresora.
Para obtener la experiencia completa, puedes añadir append gfx-full para obtener un modelo 3D dinámico de la impresora. Las opciones gráficas son muchas, así que consulta el siguiente enlace para ver el conjunto completo de argumentos.
https://github.com/vintagepc/MINI404/wiki/Advanced-Visuals
./qemu-system-buddy -machine prusa-mini -kernel prusa3d_fw_4_3_3_MINI.bbf -chardev vc,id=p404-scriptcon,cols=80,rows=24 -mtdblock SPIflash.bin -pflash st25block1.bin -pflash st25block2.bin -drive if=none,id=usbstick,format=raw,file=MINIUSB.img -device usb-storage,drive=usbstick -netdev user,id=mini-eth,hostfwd=tcp::3333-:80 -append gfx-full
Como puede ver, la cola para el lanzamiento se está haciendo bastante larga. Hay una herramienta en línea para generar toda la línea en función de lo que utilice, pero también puede crear un script bash para lanzar una configuración establecida.
Crea y empieza a editar un pequeño archivo de texto con el editor Nano.
sudo nano startMINI404.sh
Pega la línea siguiente (o la que tenga)
./qemu-system-buddy -machine prusa-mini -kernel prusa3d_fw_4_3_3_MINI.bbf -chardev vc,id=p404-scriptcon,cols=80,rows=24 -mtdblock SPIflash.bin -pflash st25block1.bin -pflash st25block2.bin -drive if=none,id=usbstick,format=raw,file=MINIUSB.img -device usb-storage,drive=usbstick -netdev user,id=mini-eth,hostfwd=tcp::3333-:80 -append gfx-full
Cierra y guarda
Ctrl+x -> Yes to save -> enter to confirm the file-name.
Haz que el script sea ejecutable
sudo chmod +x startMINI404.sh
A partir de ahora puedes iniciar el script desde la carpeta con:
./startMINI404.sh
Para controlar el simulador, como hacer capturas de pantalla, manipular el hardware simulado (cortocircuitar o desconectar ventiladores y calefactores, etc.), debe utilizar comandos de scripting (scriptcon).
https://github.com/vintagepc/MINI404/wiki/Scripting-Mini
La consola para esto se encuentra en una de las pestañas llamadas p404-scriptcon (cuadrado verde). Selecciónela y sepárela para que quede separada (flecha morada). Cada comando se describe en el enlace anterior. Copiar/Pegar no funciona, pero la tecla Tab hará el autocompletado.
Ahora puedes tener una vista con la pantalla en un lado (cuadrado azul), la consola del script en otro (cuadrado verde), y la salida del terminal que confirma la generación de archivos (cuadrado morado). A la derecha en la captura de pantalla de abajo se ve el comando para hacer una captura de pantalla de la pantalla y guardarla como PNG.
Hay mucho más que puedes hacer con este simulador. Nosotros sólo hemos instalado el MINI+, pero también puedes conectar PrusaLink u Octoprint, y mucho más. Ya estás en marcha, así que echa un vistazo a la Wiki de Github para más opciones, funciones y diversión.
VintagePC es un colaborador voluntario de la comunidad con gran conocimiento de la arquitectura del hardware y del firmware. Si quieres ayudar, tal vez portar esto a otros sistemas (los binarios de Win existen pero requieren Cygwin para ejecutarse y en Mac ha funcionado una vez que alguien mencionó, pero no es lo que usa diariamente el creador), o están muy al día sobre los aspectos internos de QEMU y la forma "correcta" de hacer las cosas, o contribuyen a este proyecto de cualquier otra manera, ponte en contacto con el hombre a través de su Github https://github.com/vintagepc/.
Si tienes alguna pregunta sobre algo que no se ha tratado aquí, comprueba nuestros recursos adicionales.
Y si eso no lo soluciona, puedes enviar una petición a [email protected] o mediante el botón que hay más abajo.