How to Fix a Bricked 3D Printer board. (installing a bootloader)


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 Arduino and 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.

This is a great kit to start with. - Arduino
This is a great kit to start with.

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.

All-in-1-MKS-BASE-V1-0-3D-Printer-Control-Motherboard-Compatible-RepRap-Ramps1-4-With.jpg_640x640 - Arduino
The ICSP Port you want will be next to the chip you want to program.




arduino-icsp-programming-header-pinout - Arduino

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.




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.

0830162107b - Arduino - Arduino
All ICSP pins have a second spot in the breakout pins
My board is the top - Arduino
My board is the top

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.

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.

Same thing but on a Rambo

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.,531773

How To flash bootloader to your printrboard using an arduino from PrintrBot

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.


    • I can’t say for sure but it is an atmega chip and it does have an ISCP port as shown by the circute diagram. Assuming your I3 still uses the Melzi board of course.
      Processor: ATMEGA1284P
      If it is already bricked you can’t brick it more. When you get to the bootloader install just pick the correct processor for the board and you should be fine. If the board isn’t bricked i wouldn’t mess with it.
      Let me know it this helps

  1. Hello Nathan:

    I have seen your blog and how to fix the bootloader of a mks-sbase 1.3.
    The same thing happened to me and the bootloader was damaged and I need to load it again.
    I have followed your instructions and the video, but I have some doubts:

    1º) Have you loaded by default in the mks a standard bootloader of a mega 2560? or you have loaded with a special .hex file (like smoothieware has on your github).

    2º) I tried to test the connection with dupont cables like you, but when I run the atmega_board-prgrammer of Nick Gammon I get an error in the connection requesting that I check the connection several times, but I get an error and I have checked the connection several times and they are fine.

    You can give me a hand. I thank you for your help in advance.