{:en}How to Fix a Bricked 3D Printer board. (installing a bootloader){:}{:es}Cómo arreglar una placa rota de impresora 3D. (instalación de sistema de arranque){:}

{:en}

How to Fix a Bricked Printer board.(Arduino based)

A few weeks ago I made a huge mistake and bricked my MKS Base, board. I wasn’t happy with some of my firmware settings. I decided to open up the firmware and do a little tweaking. As you probably can guess, things did not go so well. While attempting to find the firmware I somehow lost I accidently loaded a blank sketch. This wasn’t so bad but it did put me on a long path I wasn’t expecting. When I tried uploading a new sketch it wasn’t taking the upload. Somehow I not only wiped the chip but I blew the bootloader off as well. After a few hours of threatening to take a tire iron to the now useless 3d printer and beating my head against the wall. I gave up and ordered a new board.

Then my stubborn streak set in. After another day of Google Foo, I found the answer to my problems and an excuse to finally buy an Arduino. This is actually helpful for a multitude of reasons. First, I can fix my board Second I have a whole new list of projects available to me in the future and Third I can use this when I buy a board and it arrives bricked which has been known to happen. Nine times out of Ten when you get a dead board it just slipped through the factory without receiving a bootloader.I’m going to make this as easy to follow as possible. This is a skill that once you learn it, you can do all kinds of DIY projects. Like, make your own Arduino from scratch. some of the steps are a little different but very easily done.


Gather your materials.

The main thing you will need is an Arduino. I suggest buying a kit if you don’t already have one. That way you have all the pin connectors and breadboards you might need. Any Arduino will do as long as it has a bootloader already. After you get an Arduino your going to want to pull your driver board off the printer. trust me it will be easier than trying to fix it while it’s still attached.

[caption id=”” align=”alignnone” width=”387"]

This is a great kit to start with.

This is a great kit to start with.[/caption]


Wire it up.

There are quite a few ways the wiring can be done. To make it as easy as possible I’ll show you how I did it. I had an MKS base board but any Arduino based board will have an ICSP port and as long as the silk screen is done right there will be an ICSP label along with a #1 to tell you where the first pin is. From there the wiring is easy. If you have a 6 pin connector you are set. but if not the wiring is a little involved.

[caption id=”attachment_11210" align=”alignleft” width=”290"]

All-in-1-MKS-BASE-V1-0-3D-Printer-Control-Motherboard-Compatible-RepRap-Ramps1-4-With.jpg_640x640

The ICSP Port you want will be next to the chip you want to program.[/caption]

arduino-icsp-programming-header-pinout

This is how you wire them up. All credit goes to Nick Gammon for the info. I’ll show the easiest first but odds are most of us don’t have a 6pin connector.

[caption id=”” align=”aligncenter” width=”614"]

MKS or other board will be on the left.

MKS or other board will be on the left.[/caption]

This is how I wired it up.I didn’t have any female to female connectors so I pinned the male ends to the breakout pins on the Arduino. Everything is the same they are just in alternate spots.

[caption id=”attachment_11224" align=”aligncenter” width=”766"]

0830162107b

All ICSP pins have a second spot in the breakout pins[/caption]

[caption id=”” align=”aligncenter” width=”700"]

My board is the top

My board is the top[/caption]

The wiring is very straight forward if you follow the link to Nick Gammon’s page. In the video down below it will walk you through everything I have shown so far but it’s done on an ATmega chip sitting on a breadboard. All the steps are the same from here on out. When you choose your chip you want to select the ATmega 2560 unless you have a different chip.


Bringing it all together.

From here on out it’s exactly like uploading a Firmware sketch with Arduino’s software. First, you install the sketch from Nick Gammon’s page on the Arduino (not the mks board because it won’t take anything obviously) Then you run the program and you’re done. From here on out I’ll let the video do the talking. If you are familiar with Arduino and how to wire things up you can skip to 7:40 in the video for the programming details. The description in his video also has some other useful links so check them out.

[embed]https://www.youtube.com/watch?v=dpgcBsl9D4k[/embed]


The Less involved way.

I wanted to make sure just about anyone could fix their boards if they got bricked. The above way is sure fire way to program your boards and many other chips. There is another way that some might say is easier but I think it has its own issues. For this purpose, it’s pretty straight forward. Both ways have their pluses and minuses. I chose the former because it gave me an Arduino to play with and because it can be used like any prebuilt programmer. If you just want the job done and don’t want to mess with Arduino the pocket avr is hard to beat and it’s 10$ cheaper. The downside is that after you’re done the avr will end up in your toolbox never to see daylight again. Where the Arduino can be used down the road for something like a CNC machine. The choice is yours.

  1. Buy an avr programmer. I like Sparkfun’s.
  2. Download Nick Gammons files.
  3. Download and install avr firmware and drivers.
  4. Follow Steps in the video below but choose the ATmega 2560
  5. Connect the board to your PC and upload a firmware sketch. I have seen people try this and need to flash the bootloader as many as 3 times. This is why I don’t like the avr method. It doesn’t always take the first time. Some people blame the avr others blame the ATmega chips. If it doesn’t take a sketch try reflashing the board.

[embed]https://www.youtube.com/watch?v=Ec5GQ9KzSVA[/embed]

Same thing but on a Rambo

[embed]https://www.youtube.com/watch?v=mC4Pv15Ibco[/embed]

I hope this helps some of you. It’s not something that happens to many of us but it’s better than buying a new board because of a simple mistake or waiting weeks for a board that was DOA only because it didn’t have a bootloader. It also means you can mod your firmware without worrying about bricking the board. The extremely thrifty could use this to build their own Driver boards for things like CNC or even a 3d printer. Once you know how to install bootloaders on blank chips, Said chips drop in price to pennies on the dollar instead of a couple dollars a chip.

Staying up till 3am isn’t hard but going to school in the morning is. If you’d like to help me stay awake so I can write more posts like this go hit up our Patreon and buy me an energy drink.

https://www.patreon.com/3dprinterchat

{:}{:es}

Cómo arreglar una tarjeta rota de impresora 3D (Base de Arduino)

Hace unas semanas cometí un gran error y rompí mi MSK Base, No estaba contento con algunas de mis configuraciones del firmware. Decidí abrir el firmware y unos cuantos ajustes. Como pueden imaginarse, las cosas no resultaron tan bien. Al tratar de encontrar el firmware de alguna manera he perdido accidentalmente el manual de instalación. No hubiera tenido problemas, pero me puso en una situación difícil. Cuando intente cargar una nueva configuración, no estaba reconociéndola. De alguna manera no sólo se quemó el chip, el gestor de arranque (bootloader) se dañó. Después de unas horas de amenazar con tomar un tubo de la ahora inservible impresora 3D y golpear mi cabeza contra la pared. Me di por vencido y ordene una nueva placa.

Entonces mi terquedad ataco. Después de otro día de Google Foo, encontré la respuesta a mis problemas y una excusa para finalmente comprar un Arduino. Esto es realmente útil por múltiples razones. En primer lugar, puedo arreglar mi tarjeta, segundo, acceso a una nueva cantidad de proyectos disponibles para mí en el futuro y tercero, puedo usarla cuando compre una nueva tarjeta y venga rota que es lo que ha pasado. Nueve de cada diez veces cuando consigues una tarjeta muerta que se ha escapado de la fábrica sin haberle precargado el sistema de arranque. Voy a hacer esto tan fácil de seguir como sea posible. Esta es una habilidad que una vez aprendida, puedes realizar toda clase de proyectos “hágalo usted mismo”. Como hacer tu propio Arduino desde cero. Algunos de los pasos son un poco diferentes, pero muy sencillos de hacer.


Reune los materiales.

Lo principal que se necesita es un Arduino. Sugiero comprar un kit si no cuentas con uno. De esa manera tienes todos los conectores y placas universales que puedas necesitar. Cualquier Arduino trabajara siempre y cuando se tenga un sistema de arranque. Después de obtener un Arduino vas a querer arrancar tu tarjeta de drivers de la impresora. Confía en mí, será más fácil que tratar de solucionarlo mientras aún está unido.

[caption id=”” align=”alignnone” width=”387"]

This is a great kit to start with.

Este es un buen Kit para comenzar.[/caption]


Cablear.

Hay bastantes maneras en la cual el cableado se puede hacer. Para que sea lo más fácil posible te voy a mostrar cómo lo hice. Yo tenía una placa base MKS pero cualquier placa basada Arduino debe tener un puerto ICSP y siempre que la pantalla de seda este bien hecha habrá una etiqueta ICSP junto con un # 1 indicando donde está el primer pin. Desde allí, cablear es fácil. Siempre y cuando tengas un conector de 6 pines. Si no es así el cableado no será tan necesario.

[caption id=”attachment_11210" align=”alignleft” width=”290"]

All-in-1-MKS-BASE-V1-0-3D-Printer-Control-Motherboard-Compatible-RepRap-Ramps1-4-With.jpg_640x640

El puerto ICSP Port que quieres debe estar junto al chip que quieres programar.[/caption]

arduino-icsp-programming-header-pinout

Así es como se cablea. Todo el crédito va a Nick Gammon por la información. Voy a mostrar la solución más sencilla primero, pero las probabilidades son para la mayoría de nosotros que no tiene un conector de 6 pines.

[caption id=”” align=”aligncenter” width=”614"]

MKS or other board will be on the left.

MKS u otras tarjetas estaran del lado izquierdo.[/caption]

Así es como yo lo hice, como no tenia un conector hembra a hembra tuve que colocar el pin macho directamente a la placa de arduino. Todo lo demas debe ir en los lugares especificados.

[caption id=”attachment_11224" align=”aligncenter” width=”766"]

0830162107b

Todos los pins ICSP tienen un segundo puerto para sus pines.[/caption]

[caption id=”” align=”aligncenter” width=”700"]

My board is the top

My tarjeta es la de arriba[/caption]

El cableado es muy específico si sigues el link de Nick Grammon’s page. En el video de abajo te guiara a través de todo lo que he mostrado hasta ahora, pero se ha hecho en un chip ATmega instalado en la placa. Todos los pasos son los mismos de aquí en adelante. Al elegir el chip querras seleccionar el ATmega 2560 a menos que quieras un chip diferente


Juntalo todo.

De aquí en adelante es exactamente igual que cargar un firmware sketch con Arduino´s software. Lo primero, instalar el sketch de la página de Nick Grammon’s en el Arduino (No en la tarjeta MKS porque no funcionara, obviamente) Después corres el programa y ya está. De aquí en adelante voy a dejar al video hablar. Si estas familiarizado con Arduino y como cablear puedes saltar al minuto 7:40 para pasar a los detalles de programación. La descripción en el video contiene otros links bastante interesantes que deberían probar.

[embed]https://www.youtube.com/watch?v=dpgcBsl9D4k[/embed]


La menor forma de involucrarnos.

Quería asegurarme de que casi cualquier persona pueda reparar sus tarjetas si están dañadas. La forma más eficiente es seguramente de programar y diseñar tus propias tarjetas así como los chips. Incluso hay una forma aún más sencilla pero personalmente creo que tiene sus propios problemas. Para este propósito, es bastante sencillo. Ambas formas tienen sus ventajas y desventajas. Elegí el primero porque me dio un Arduino para jugar y porque puede usarse como cualquier programador de pre-compilados. Si lo que desean es realizar el trabajo y no quieren meterse con Arduino AVR de bolsillo es difícil de superar y es 10 $ más barato. La desventaja es que después de que haya terminado el avr va a terminar en sus cajas de herramientas y no volvera a ver la luz del día. Cuando el Arduino se puede utilizar volver a utilizar para hacer algo así como una máquina CNC. La decisión es tuya.

  1. Comprar un programador avr. Me gustan los de Sparkfun’s.
  2. Descargar los archivos de Nick Gammons .
  3. Descargar e instalar el firmware avr y los drivers.
  4. Siga los pasos en el siguiente video, pero elegir el ATmega 2560
  5. Conectar la placa a su PC y cargar el firmware sketch. He visto gente que trata de hacer esto y tienen que flashear el sistema de arranque hasta 3 veces. Por esta razón, no me gusta el método avr. No siempre agarra la primera vez. Algunas personas culpan a los avr otros culpan a los chips ATmega. Si no se funciona con el sketch intenten volver a flashear la tartejata.

[embed]https://www.youtube.com/watch?v=Ec5GQ9KzSVA[/embed]

Lo mismo pero en una Rambo

[embed]https://www.youtube.com/watch?v=mC4Pv15Ibco[/embed]

Espero que esto ayude a algunos de ustedes. No es algo que le sucede a muchos de nosotros, pero es mejor que comprar una nueva placa a causa de un simple error o esperar semanas para una placa que fue quemada sólo porque no tenía un sistema de arranque. También significa que puedes modificar el firmware sin preocuparse por joder la tarjeta. los extremadamente ahorrativos podrían usar esto para construir sus propias tarjetas de controladores para cosas como CNC o incluso una impresora 3D. Una vez que sabes cómo instalar gestores de arranque de virutas en blanco, chips, te saldrán en centavos de dólar en vez de unos cuantos dólares al comprar un chip ya instalado

Mantenerse despierto hasta las 3 am no es difícil, pero ir a la escuela por la mañana si lo es. Si desea ayudarme a permanecer despierto para que pueda seguir escribiendo más artículos como éste ve hasta nuestra Patreon y cómprame una bebida energética.

https://www.patreon.com/3dprinterchat

{:}