I have recently purchased a very cheap 3D printer off ebay. A couple of days later, the box was delivered to my door, so I took a day off, to assemble it, and try it out.
Assembly took around 4 hours, and after a couple of days of tinkering I was managing to print a decent, but far from perfect 20mm calibration cube, it was evident that although for the investment the printer did the job, it could most definitely use some upgrades (the first compulsory upgrade I would recommend is a decent extruder, but more on that in another post.)
In this post, we will deal specifically with upgrading the Z-Axis lead screws, along with the Marlin 1.1.8 firmware.
Before proceeding any further, you also need to know, that a firmware upgrade after replacing the screws is not compulsory in any way. Even if the steps / mm of the z-axis need to be changed drastically, this can be achieved by modifying the “start-script” in your g-code and adding a line with an M92 instruction as follows :-
M92 {axis}{steps per mm}
(Refer to http://marlinfw.org/docs/gcode/M092.html for more info)
Basically the M92 instruction overrides the preset steps / mm inside the firmware (until the printer is rebooted). Obviously if you use this override, the printer movements via the lcd menu will not be accurate, until you send the command, but most (if not all) slicers, include a start / end script, which is added automatically to your g-code every time you slice an object, so all you need to do is add an M92 instruction to the start script of your slicer, and you are good to go.
The M92 can be used for the X/Y/Z/E axis as follows :-
M92 X78.81 Y78.81 Z400 E114.130
This will set the steps / mm for all the axis including the extruder (E), and will override the firmware settings of your printer.
If armed with the above knowledge, you still want to go ahead and update the firmware, here is how I went about it.
Before we begin, assuming your printer is working correctly, I would recommend buying a second control board identical to the one inside your printer, so if things go south, you can always fall back to the original board. My printer came with a GT 2560 Rev A board, (without a bootloader, but more on this later), so I got a second one off amazon, including a full graphics display for around 40 bucks. Luckily the board received came with a proper bootloader.
The second thing to check is the orientation of the connectors. For some odd reason I came across GT2560 boards with the LCD / SDCard connector notch rotated 180 degrees, which worked with the supplied LCD Display board, since the latter also had the wrong orientation on its connector, but failed to work with a brand new lcd board.
Always check the pinouts (especially supply and ground pins) on both the mainboard and the lcd.
If the buzzer keeps beeping and / or the lcd backlight keeps blinking after power is applied, chances are the LCD / SDCard connectors are rotated by 180 degrees on one end.
Moving forward, I will outline the steps I took to enhance my printer. This does not suggest that this is the only or most effective method to undertake. Strictly adhering to these steps does not eliminate the risk of damaging your control board or the printer itself. If you’re uncertain, pause and conduct thorough research instead of making assumptions.
Proceeding further, I will detail the steps I took to enhance my printer. However, this doesn’t suggest that this is the sole or superior method; strictly adhering to these steps doesn’t guarantee success and could even harm your control board or printer. Should any uncertainties arise, take the time to conduct thorough research rather than making assumptions.
Proceed with caution, and at own risk.
Get and compile the latest marlin firmare
- Head to http://marlinfw.org/meta/download and download the latest stable release (1.1.8 at the time of writing). Open the zip archive, and extract the folder called “Marlin” somewhere on your hard drive.
- Head to https://www.arduino.cc/en/Main/Software and download the latest version of the Arduino IDE (1.8.5 at the time of writing)*. Install or Unzip, depending on the version you downloaded.
- Head to https://www.arduinolibraries.info/libraries/u8glib and download the latest version of the U8glib library for monochrome TFTs and OLEDs. (1.19.1 at the time of writing)
*note : Earlier releases of marlin might require earlier versions of the arduino compiler, which can be found at https://www.arduino.cc/en/Main/OldSoftwareReleases however dealing with the issues of older releases is beyond the scope of this writeup.
Start the Arduino IDE, and open the file called “marlin.ino” located in the “Marlin” folder you extracted in step 1.
If you have never used the u8lib library before, you will need to install the zip file you downloaded in step 3. Click on Sketch -> Include Library -> Add .ZIP Library
Head to the location where you saved U8lib-1.19.1 (from step 3) select it and click open.
Click on Tools -> Board and select “Arduino / Genuino Mega or Mega 2560”
Make sure that under Tools -> Processor Atmega 2560 (Mega 2560) is selected
And finally under Tools -> programmer, select “AVR ISP”
Before moving forward, I would also suggest, heading over to File -> Preferences, and check Show verbose output during : compilation and upload. This could be very helpful if we encounter any errors later on.
We are now ready to test compile the code, to make sure everything is ok before we start messing about with the code. Hit the “✓” symbol under “file”, and make sure the unmodified firmware compiles successfully.
If you selected “show verbose output during compilation”, the bottom part of the screen should start filling up with information the compiler is giving us. After a while, if all goes well you should be able to see the message “Compiling core …” and a bit later “Linking everything together…“. Another couple of messages from the linker and we are done :). You have successfully compiled the marlin firmware.
If you receive any errors relating to the U8lib, make sure you have followed the steps to include the library above correctly.
In part 2 of this blog post, we will deal with the actual configuring and uploading part of the firmware.