The last thing I wanted to do for my UP Plus 2 rebuild was to change the Z probe. The original Z probe is a micro-switch that is attached to the hot-end before calibrating. The UP Studio software has a calibrate function to allow bed leveling before printing. The probe would be manually attached, the calibration routine run via software and then the probe removed before starting the print. The same procedure can be done through the Marlin firmware I am running and G code commands via Octoprint but it is a pain. I want to be able to just press print and forget it.
My old Prusa Mendel printer was capable of auto bed leveling via an RC servo retracted Z probe. This worked well with the only problems being the twisted frame of the machine causing issues towards the end of its life. I considered mounting the servo Z probe to the Up but wanted to try something new. I had seen non contact sensors before and wanted to give them a try.
After looking around the internet I settled on an LJ18A3-8-Z/BX 8mm Inductive Approach Proximity Sensor. This sensor will trigger when a piece of metal is brought within 8mm of its end. Since the bed of the Up is made of aluminium this is perfect. The sensors 8mm activation is repeatable to within ± 25um which is suitable for printing at 0.1mm layer height when printing on a raft like I do. The sensor is bolted onto the side of the hot-end adapter and can be manually adjusted without much difficulty.
The wiring was a little interesting as the sensor runs off 12V but the Arduino take 5V inputs. There is a lot of discussions around the internet about how to interface these sensors with the Arduino with much arguing about voltage dividers vs opto-couplers vs transistor logic. I had a look at the sensors data sheet and saw that the sensor has a NPN Current-Sink output which means that the sensors output is grounded when active and floating otherwise. I checked that the Arduino input is set with a pull-up resistor and the firmware input is active low then connected the sensor output via a diode with the anode to the Arduino to prevent any 12V from getting through and that is it. Enable auto bed leveling in firmware and add the G code to the slicer software and now the Up is print and forget.
The last thing was to add a print job cooling fan and duct to the hot-end. This fan and the hot-end fan are both controlled via the RAMPS. The hot-end fan is on the third power output of the RAMPS and is set to turn on when the hot-end temp is above 50 degrees. The second fan is switched on via a relay from a spare output pin on the Arduino and is controlled via G code. All the wiring is brought up to the extruder via the existing Up wiring harness.
With the addition of the Raspberry Pi to my rebuilt Up Plus 3D printer I now have three power supplies connected to the machine. The heated bed is using the original 19V power supply that came with the Up, the RAMPS 1.4 and hot-end are using the 12V supply from my old Prusa and the Raspberry Pi is using an old 5V phone charger. This is a lot to connect to start the printer.
I want to simplify things by just using the 19V supply and fit the machine with two step down voltage regulators. I would need one regulator to step the 19V down to 12V and a second to step down again from 12V to 5V. The 5V is easy as the Raspberry Pi Zero W only draws 250mW max so any USB power supply will work. I settled with a dual USB 15W switch mode supply that can handle 6V – 40V input. The larger supply and dual ouput would be handy if I add a WiFi camera later.
The 19V to 12V supply needs to supply the RAMPS 1.4, Arduino, stepper motors and the hotend. I calculated the peak power draw to be 30W (2.5A). I chose a 50W Power Supply Module that included an LCD display that shows the current draw and voltage. The Ebay listing shows that the unit can supply 35W constant without cooling and 50W with the supplied heatsink. I also added a cooling fan.
The first test run had the 12V supply showing peak current draw of under 2.5A so less than 30W but the heatsink was getting too hot to touch even with a fan on it. 10 minutes into the print the printer stopped with the 19V supply shutting down due to short circuit protection. The second MOSFET on the 12V supply had failed short circuit. I contacted the Ebay seller wh didn’t respond to any e-mails. Swindled.
With a doubtful attitude to Ebay sellers I decided to replace the 50W supply with a 200W supply. This new supply doesn’t have a fancy LCD but it shouldn’t burn up during basic use. I kept the cooling fan just to make sure and the power supply is cool during use.
Now with only one power cable this printer is almost looking finished.
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.
I have had to pause work on my robots as I have not been able to get any reliable prints out of my old Prusa Mendel 3D printer. The frame of the printer had twisted again making auto bed leveling impossible while the extruder drive was failing. After moaning to my brother about the troubles he gave me a “new” printer. The “new” printer being an old Up Plus 2 that had previously been written off and stripped for parts.
The first thing I did when it arrived was pull all the covers off to see how bad it was. The mechanical faults seemed to be limited to a broken Y belt clamp and a destroyed hotend. The Y belt clamp had been broken when the printer was pushed against a wall while opperating and there may be an accompanying electrical fault that I can’t assess without first fixing the mechanical issues. So first I designed and printed a new belt clamp using the old printer. Fortunately it worked the first try.
Next I needed to replace the hotend. The only hotend I had available was the E3D V6 on my current printer. So I downloaded some drawings of the E3D V6 and measured the Ups hotend and extruder and made a new mount for the hotend. The trick was to try and get the nozzle of the new hotend to be in the same position as the original nozzle. Since the E3D hotend is much higher than the Up hotend the new mount needed to raise the extruder a fair way. This new mount was the last print ever done on the old Prusa Mendel as I pulled the hotend out after it was finished.
With the mechanicals sorted I could test the electronics. I downloaded the Up software and connected the printer to my laptop. The first problem came when homing the motors. The X and Z axis worked fine but the Y axis whould crash into the front after homing to the rear. It seemed that the Y stepper driver IC was damaged and was stepping a different distance when moving one way than the other. That was very strange but not worth looking into after finding out about the thermistor problem.
The E3D V6 comes with a very common 100k ohm thermistor. A 100k thermistor is used on just about all 3D printers everywhere, except for the Up. The Up uses a much more uncommon 100 ohm thermistor. The different thermistors require different pull up resistors on the control electronics for them to work. Because of this the Up software would report a hotend temperature of over 300 degrees and refuse to run. To fix this I would need to replace the pull up resistor and then work on the Y stepper driver fault. Or replace the control board with my own. So I pulled the RAMPS 1.4 board out of my old printer to replace the Ups damaged controller.
The next step was to completly re-wire the printer and setup the firmware from scratch.