Artículos

Configura y actualiza tu impresora 3D utilizando Visual Studio Code y Platform.io

Recientemente tuve que actualizar una placa de 32bits (MKS Robin Nano de MakerBase) para instalarle un firmware de Marlin, concretamente la versión 2.0.1. Normalmente suelo utilizar sublime y el IDE de arduino, pero esta vez me dispuse a hacerlo con Visual Studio Code y su genial extensión Platform.io IDE.

Había oído hablar previamente de él en nuestro canal de Telegram, pero no había tenido la ocasión de utilizarlo nunca. Y ciertamente, me ha parecido una forma genial de editar y compilar los archivos de Marlin.

Así que os dejo por aquí una breve y rápida guía de como empezar a utilizarlo. Espero como siempre que pueda serviros de utilidad.

 

Visual Studio Code

Visual Studio Code es un fabuloso editor freeware de código muy ligero y potente. Esta orientado a lenguajes de programación de todo tipo (JS, TypeScript, C++, C#, Python, PHP, etc.). Además, incluye numerosas funciones como depuración de código, resaltado de sintaxis, finalización inteligente de código, refactorización y muchas cosas más.

Se encuentra disponible en las 3 plataformas más importantes que existen actualmente: Windows (7, 8 y 10), Linux (formatos .deb .rpm y .tar.gz), y como no Mac (macOS 10.10+).

No es mi función, ni la de esta mini-guía, el explicar todas las bonanzas de este gran editor de código en profundidad. No obstante, si deseas conocerlo más a fondo y obtener toda la información al respecto, no dudes en visitar la página web oficial del proyecto en este enlace.

Pues bien, lo primero que deberás efectuar es instalar este software. Aquí tienes el enlace de descarga para todas y cada una las plataformas disponibles: Descargar Visual Studio Code

 

Instalando la extensión PlatformIO IDE

Una vez que hayamos instalado correctamente Visual Studio Code, ejecutaremos el programa y buscaremos en la barra lateral izquierda, un icono con una especie de Puzzle (como puedes ver en la imagen superior)

Con esto accederemos a la sección donde se administran las Extensiones. Allí iremos al cuadro de búsqueda, introduciremos el nombre «PlatformIO IDE» y esperaremos a que aparezca en el listado. Después lo seleccionaremos y pulsaremos el botón «Install” para comenzar el proceso de instalación del mismo.

El tiempo de instalación dependerá de tu ordenador y del sistema operativo que tengas. Tardara un poquito, así que ten paciencia y espera a que termine completamente. Una vez finalizado, el propio software te avisará con un mensaje en la parte derecha inferior «PlatformIO IDE has been successfully installed! Please reload window«.

En el caso de que no tengas Python instalado, Visual Studio Code te pedirá que lo instales, ya que es completamente necesario para esta extensión. Te debería aparecer un mensaje tal como este «PlatformIO: Can not find working Python 2.7 or 3.5+ Interpreter. Please install the latest Python 3 and restart VSCode«. Y te ofrecerá la posibilidad de descargarlo pulsando un botón, picha en él, descargas el software y lo instalas, nada más simple.

 

Cargando nuestro Firmware Marlin

Ya con Visual Studio Code y la extensión Platform.io IDE completamente instalados y funcionales, podremos empezar a trastear con nuestros firmware Marlin. Para ello arrancaremos la aplicación, y en la parte superior buscaremos una pestaña llamada PIO Home (justo a la derecha del Welcome).

Si pulsamos en esta pestaña, PlatformIO nos dará la bienvenida y nos mostrará varios botones de acceso rápido (Quick Access). Entre ellos localizaremos uno que dice «Open Project» y lo pulsaremos para buscar nuestro proyecto, que en este caso será un firmware de Marlin para editar y/o compilar.

Recuerda haber descomprimido el firmware Marlin, en caso de que sea recién descargado, ya que lo que vamos a seleccionar aquí es la carpeta contenedora, y no el archivo del proyecto como hacíamos con el compilador oficial de Arduino (Arduino IDE).

 

Configurando nuestro proyecto

Ahora llega la hora de configurar nuestro firmware Marlin para la mecánica de nuestra impresora, y con las opciones que deseemos obviamente.

Para ello, te animamos a que te leas nuestro artículo Guía completa: Configurar Marlin 2.0.x desde cero y no morir en el intento, que escribí unas semanas atrás y que te será de gran ayuda si careces de experiencia previa compilando Marlin.

Si ya tienes el firmware configurado a tu gusto (y al de la exigente impresora), solo resta seleccionar el microprocesador sobre el que vamos a trabajar, pudiendo ser de 8 bits o de 32 bits. Para ello, dentro de la carpeta del proyecto Marlin, buscaremos y editaremos un archivo que se denomina «platformio.ini».

En este archivo le indicaremos que tipo de microprocesador tiene nuestra electrónica, así el compilador podrá preparar el firmware para que funcione en ella sin ningún problema. Para ello buscaremos las siguientes líneas:

[platformio]
src_dir      = Marlin
boards_dir   = buildroot/share/PlatformIO/boards
default_envs = megaatmega2560
include_dir  = Marlin

 

Donde aparece default_envs deberás indicar el microcontrolador de tu electrónica. En este caso particular yo dispongo de una MKS Gen v1.4 de Makerbase, y por eso está configurado el valor «megaatmega2560».

Deberás descubrir cuál es el valor a poner en default_envs y rellenarlo, si no te mostrará error durante el proceso de compilación.

Os dejo aquí un listado con algunos de los microprocesadores más comunes y el valor a indicar en esa variable. Existen más, así que consulta el archivo «platformio.ini» si el tuyo no aparece aquí.

ELECTRÓNICA DISPONIBLE ENV_DEFAULT
Arduino Mega 2560 (8-bit) megaatmega2560
Arduino Mega 1280 (32-bit) megaatmega1280
Arduino Due DUE
SKR v1.4
Re-ARM Board
MKS SBASE 1.3
LPC1768
SKR v1.4 Turbo
Panucatt Azteeg X5
Smoothieboard 4x
LPC1769
MKS Robin mks_robin
MKS Robin Nano mks_robin_nano
RAMBO (8-bit) rambo
Melzi y clones melzi
Sanguinololu (ATmega644p) sanguino_atmega644p
Sanguinololu (ATmega1284p) sanguino_atmega1284p
FYSETC S6 (STM32F446) FYSETC_S6

 

Compilando y subiendo el firmware a nuestra impresora

Y para acabar, llegamos a la parte más sencilla del artículo, compilar y subir nuestro firmware personalizado a la impresora 3D. Así que vamos a ello!

 

Electrónicas de 8 bits

En las placas de 8 bits debemos de hacer clic en el icono del «marcianito» o «libélula» (no tengo ni idea de que narices es). Este se encuentra en una barra de iconos a nuestra izquierda, y está posicionado debajo del icono que utilizamos anteriormente para instalar la extensión «PlatformIO IDE«.

Una vez hayamos efectuado el clic nos aparecerá otra barra (algo más ancha) a su derecha con las diferentes opciones del compilador. En la sección PROJECT TASKS, pulsaremos la opción «Build» para compilar el firmware.

El compilador empezará a trabajar, y ya solo tendremos que esperar a que finalice. En mi ordenador con Windows 10 y microprocesador i7 (de primera generación) suele tardar poco más de un minuto. Sobra decir, que si tenemos algo mal configurado, el compilador y el «SanityCheck.h» de Marlin, nos darán error de compilación e información exhaustiva del problema.

Ya para finalizar, si deseamos subir el firmware compilado a nuestra impresora pulsaremos la opción «Upload«. Recuerda haber pinchado tu placa al ordenador vía USB, sino no podrá conectar y finalizar el proceso.

 

Electrónicas de 32 bits

Para las placas de 32 bits, seguiremos el mismo proceso para compilar. Clic en el «marcianito», y después en la opción «Build» de igual manera que hacíamos en las de 8 bits.

Pero en este caso no usaremos la opción «Upload» para subir el archivo a la placa, ya que normalmente en las electrónicas de 32 bits se suele copiar el archivo generado (Firmware) en una SDCard. Después introduces la SDCard en su ranura correspondiente y tras alimentar la placa, el mismo detectara un nuevo firmware y se actualizará automáticamente durante el proceso de encendido.

Para que esto suceda, copiaremos nuestro firmware generado a la tarjeta, y lo encontraremos en la siguiente ruta de nuestro proyecto Marlin: \.pio\build\mks_robin_nano\firmware.bin

 

 

Y bueno, esto es todo por ahora. No quisiera alargarme más ya que os prometí que era solamente una mini-guía sobre cómo utilizar Visual Studio Code y Platform.io. Como siempre, si tenéis alguna duda, no dudéis en uniros a nuestro canal de Telegram.

 

Puedes encontrar más artículos interesantes dentro de 3DWork.io:

 

Peter

Ver comentarios

  • Muy útil muy buen tutorial.muy budn trabajo para gente como yo que no tengo mucha idea y tutos así da gusto.

  • hola tengo un problema al poder crear este archivo para mi impresora y es que visual estudio no me arroja un archivo firmware.bin sino que me lo arroja en firmware.hex si me pueden ayudar se los agradeceria mucho

  • excelente tutorial, funciona a la perfección, solo tengo una duda con un problema que estoy presentando.

    actualicé mi firmeware de la impresora, el firmeware anterior tenía recuperación de impresión "Recovery_Power_Loss", al actualizar el firmeware, se quedó comentado "\\#define Recovery_Power_Loss", por lo cual perdí una impresión.

    He intentado arreglarlo modificando nuevamente el código en VSCode compilarlo y volver a insertar la tarjeta de memoria, sin embargo no se actualiza el firmeware con esta modificación, he intentado con el cambio de nombre del archivo con "Firmeware.bin", he formateado la tarjeta al formato adecuado antes de introducirla a la impresora y nada me funciona.

    ojalá me pudieras escribir para saber si hay algo que esté haciendo mal o algo adicional que deba realizar.

    de antemano muchas gracias

    • Por desgracia el proceso de arranque del bootloader es bastante limitado en la compatibilidad con tarjetas tanto por el tipo, tamaño y formato.
      Las ideales son las más sencillas, menores de 2Gb y formato FAT32/4096.
      Prueba con varias, a no ser que esté el lector SD estropeado te debe coger alguna.

Entradas recientes

LaserPecker LP4 : grabadora láser premium

Normalmente solemos centrarnos en dispositivos y accesorios relacionados con la impresión 3D, en este caso…

3 semanas hace

TwoTrees SK1 : Review

Nuestros compañeros de TwoTrees han lanzado una nueva impresora muy interesante, la Twotrees SK1. TwoTrees…

1 mes hace

Creality K1 / K1 Max / K1C : Review

Las Creality K1 Series tienen todo lo que puedas buscar en una impresora 3D, son…

2 meses hace

Revopoint RANGE 2 : escáner 3D de para objetos de gran tamaño

Los amigos de Revopoint siguen renovando sus modelos, en este caso hemos podido probar el…

2 meses hace

Bigtreetech Manta M8P / M5P / M4P / E3EZ: Análisis y guía completa

La nueva serie Bigtreetech Manta, que tiene cuatro versiones para adaptarse a cualquier máquina, además…

3 meses hace

Anycubic Photon Mono M5S PRO: más resolución, más inteligente

Hoy os traemos otra impresora que teníamos muchas ganas de que cayera en nuestras manos,…

3 meses hace