So now I have my rebuilt Up Plus 2 3D printer working I need to tidy up the electronics. To do this I downloaded a RAMPS 1.4 case off of Thingiverse and set to printing.
The first problem I had was bed adhesion. The buld plates that came with the printer are similar to a prototyping PCB perf-board with hundreds of tiny holes in it. The PETG filament I am using sticks to the board well enough but all the holes make for a really rough bottom layer. After a little Googling I found that the Up software slicer uses a raft for bed adhesion so I will try that. It took some adjusting to get the first layer height offset correct but it is working.
The next problem was that the prints are warping badly. I had not wired up the bed heater yet as I still needed to change the thermistor. The Ups original 100 ohm thermistor doesn’t work with the RAMPS controller so I replaced it with a 100k ohm thermistor. With the RAMPS power supply set to 13.5V the bed could only reach 65 degrees celsius and even then took 45 minutes to get there. The recommended bed temperature for PETG is 70 degrees so the best I could manage was still 5 degrees too low.
While I had changed the thermistor I didn’t change the heater cartridge in the Ups bed which was designed to work with a 19V power supply. The RAMPS 1.4 has a seperate power input for the heated bed but a look at the schematic shows that the MFR1100 11A PTC resettable fuse is only rated for 16V. A look at how these PTC fuses work and at the datasheet for this particular fuse I see that the critical part is not the voltage but rather the power consumption as the fuses rely on heating of the internal elements for them to work. If more than 16V is applied to the fuse while it is failing then the extra power consumed by the fuse while the internal resistance rises can cause the fuse to fail in a non-resettable way. But since this is what fuses usually do I am willing to risk using the standard PTC fuse at 19V.
I wired up the original Up 19V supply to the 11A input and left the 13.5V supply on the 5A input of the RAMPS and gave it a go. Now it reaches the target 70 degrees in under 15 minutes and has no trouble maintaining that temp.
I had started printing the case for the RAMPS before fixing the bed heater and the case had warped and the print failed when it seperated from the raft 3/4 of the way through. Since it took 14 hours to print as much as I did I didn’t want to start again. I cut the part that printed successfully of the bottom of the model in Cura to finish the print with the bed heater active and then glued the top to my failed print. The pieces don’t quite match due to warping but I now have a momento of how the printer worked before the improvements.
With the mechanical repairs done to the old Up Plus 2 I was given I can start on replacing the controller board. The old board had a faulty Y stepper motor driver and wasn’t compatible with the thermistor in my new hot end so I am fitting the printer with the controller from my old printer.
There are several guides on the internet about how to setup and commision a RAMPS 1.4 board in a new 3D printer and I don’t feel like writing my own so I will go over the basic steps here. If you need a more comprehensive guide I would suggest starting here.
Load the latest Marlin firmware onto the Arduino and load OctoPrint onto my laptop and verify that the two can connect to each other so I can use OctoPrint to control the printer.
Connect the endstops to the RAMPS and use the M119 Endstop Status command in the OctoPrint terminal to verify that the endstops work. The Z endstop was connected to the Upper Z Endstop port and the Z probe connected to the Lower Z Endstop.
Connect the motors (while powered off) and check motor direction is correct. I manually moved to carriages to their centers by hand and then jogged the motors 10mm using the OctoPrint controls to check the direction. Since the Z axis is belt driven and falls under its own weight if the motor is off I had to hold it in my hand before driving it. The directions were corrected in the Marlin firmware configuration.h file before reflashing the firmware and trying again.
Check the motors home correctly. This was done with the Ups original magnetically attached Z probe stuck onto the X carriage bracket. I had my hand on the power switch before triggering the home button so I could power off the machine if the motors started homing in the wrong direction. Only the Z axis was wrong and this was corrected in the configuration.h file.
Check each axis Steps/mm setting is correct by measuring starting distance of each axis’s carriage in relation to the printers fame and then using OctoPrint to move the axis 50mm and measuring the real world movement. I found that the Marlins default 80 steps/mm matched the X and Y perfectly and didn’t need adjusting so I set the Z axis to the same 80 steps/mm.
Added the dimensions of the bed into the firmware.
Set Z-probe pin to be the same as the Z endstop and measured and entered the Z probe offset from the nozzle. I also enabled Safe_Z_Homing at the center of the bed as the Z probe was not homing over the bed. Verified with G28 command.
Set Auto_Bed_leveling_Linear in the firmware using 3 points per axis.Verified with G29.
After running G28-G29 I used OctoPrint controls to move to the center of the bed and lowered the nozzle close enough to the bed surface so that a piece of paper could barely fit between the nozzle and the bed. Then I used M114 to read the current position and calculate the correct Z-Probe Z offset and updated the firmware. I like to keep the firmware up to date rather than using EEPROM commands as this means I have a backup of the configuration and if the controller blows up I can reflash a new controller and skip most of these steps.
Connect the extruder drive and verify the drives direction and feed rate with the hotend removed. The rate is checked by feeding a few cm of filament through the extruder and wrapping some tape around the filament where it exits the extruder. I then use OctoPrint to extrude 50mm and measure how much was really extruded using the tape as a reference. I then calculate the error as a percentage and adjust the steps/mm in the firmware by this error. I then repeat the test until the error is as low as possible.
I refitted the hotend and switched it on to check that it heats up. I no longer have an IR thermometer to verify if the thermistor table is correct as the kids wrecked it thinking it was a hammer so I have to presume that the reported temp is accurate. Next I ran M303 C5 E0 S200 to auto tune the PID values and updated them in the firmware.