Tuesday, April 03, 2018

3D Printer V2 - Here We Go Again

Makr-B-Bot Version 1
A few years ago I built a 3D printer, made completely from standard MakerBeam. Inspired by the design of the first PrintrBot, which seemed a design that was easy to replicate using these little aluminium profiles. It turned out to be little more complicated than I originally thought, but in the end it worked out quite nicely.
A few things kept bothering me though. First it seems impossible to get rid of the overhang. When the arm is extended to the maximum, it tends to hang down. Not much, but with a layer height of 0.2 mm this soon becomes noticeable. Which also brings up the second annoyance: it is very hard to level the printbed. The adjustment nuts are difficult to reach and the mounting points are too close together, making it very hard to get the bed level. And every time I move the whole printer the process has to repeated.
So I already decided that the next printer design should be a the 'gantry crane' model, which also happens to be the most popular DIY 3D printer model at the moment. With of course the Prusa i3 as the absolute benchmark.
9 pieces of 240mm clear anodised OpenBeam
This time it started with the 'end of line' sale at Makerbeam of a 9 pieces set OpenBeam, originally intended for building a Kossel type printer. A quick sketch of the frame made me think that this was exactly what I needed to construct the basics. Which was wrong.

The parts in the set are 240 mm long. And a standard spindle is 300 mm. So obviously 240 it too short for the vertical stands. Also a standard print bed is 210x210, which means it has to move at least 200 to either side, making it a total travel of 400 mm. So I cut 2 beams in the middle, attached the 120 mm to a 240 piece and so created 4 pieces of 360. Connecting two pieces of OpenBeam is actually quite simple since the come with a 3mm centre hole. Just cut tap some M3 in it and screw in some M3 thread (a 2 cm  piece is enough) Then just screw the other beam on there and you're done. If tightened properly it's even hard to see where the two beams are attached. And so, with 4 pieces of 360 and 3 pieces of 240, the design seems a lot more practical.


When building the previous printer I already found that buying all the parts as separate items often exceeds the price of a complete printer kit from China. And things have not changed since then. That's to say the individual parts did all get a little cheaper, but so did the kits. For a mere €100 ~ €150,- you can buy a a minimal Chinese kit that contains almost all parts required to build a full printer. 

Anyway, here is the full list, with prices.

OpenBeam 240mm (9p) clear OpenBeam  €17.33
OpenBeam Hexagon head bolts 6mm (100p) for OpenBeam    €6.50
MakerBeam MakerBeam XL right angle bracket (12p) €8.95

Threaded rod for Z-axis dia.8mm 300mm 2 x €9.95 = € 19,90
Flexible coupling. 5 x 8 mm 2 x€4 = €8,-
GT2-6 belt € 2.75 x 2 = € 5.50
A4988 3D printer stepper driver € 2.85
Hotend Long 1,75mm € 11.95
Hotend cooling Fan holder € 3.36
NTC 100K with wire € 1.95
PTFE Teflon tube 2mm € 4.25
3d printer Heatbed spring € 0.55 x 4 € 2.20
GT2-6 20 Teeth Pulley Alumi € 2.95
Mounting bracket NEMA 17 € 4.45

Arduino Mega 2560 - clone    € 15,95    1    € 15,95
3D Printer controller RAMPS 1.4    € 9,95
3D Printer Aluminium + PCB Heatbed MK3    € 22,50

MK8 extruder 3d printer kit € 14.95
NEMA17 stepper |1.8 deg/step| 4 kg/cm | 42BYGHW609L20P1X2 3 x €12.50 = €37.50
NEMA17 stepper |1.8 deg/step| 5 kg/cm | SL42S247A €15,-
Stepstick DRV8825 motordriver 2 x €5.75
Steel rod, 8mm x 1m 2x €3.75 = €7.50
Microswitch endstop 4 x €2.25 = €9.00
 LM8UU linear bearing 4 pcs. €5,-
Belt roller with bearings €3.50

300 W PSU: €0,- (taken from an old server frame)

Total: €246.74
Again, quite some money, but less than the previous build.


As with my previous build, I just started with assembling the base. And because I remember how important stability is I added some extra makerbeam (10x10) bars at the bottom. 

At least I could use my existing 3D printer to print some essential parts.
The Y-Carriage was constructed from standard makerbeam pieces, and some aluminium strip:
I used only 3 linear bearings for the slider this time since that is what they use on the Prusa printers as well. I assume a three point support is indeed less likely to wobble. (EDIT: Later I found this was not a good idea, as the top left corner now was hanging down a bit . So I mounted the fourth bearing)
The Y axis motor assembly is a single hose clamp.

The first assembly:
 And the finished unit, as it is now:

 Some details:


Although the very first print comes out acceptable, there is one serious problem: the whole printer makes a terrible noise. Apart from the four fans, which all contribute a bit, there is the X carriage motor that is really loud and the Y motor that is less loud but still annoying. It looks like the stepping itself is the problem. Certainly on the X carriage this is even a visible problem, since in some positions the belt starts resonating more than a centimetre. So I decided to invest in two Stepstick DRV8825 motor drivers to replace the original A4988 drivers. And I replaced the the X carriage motor with a more powerful one. This makes a lot of difference. Both X and Y now move smooth and silent.  Then I placed the whole printer on a 2 cm layer of foam and that makes it even better. You can no longer hear the printing itself, it's the fan noise that prevails.

Pronterface for 2...

Now I have two printers that are physically different, I have problem with Pronterface. There is no way to save or load custom settings. So if I set it up for the new printer, the settings for the old one are simply replaced. Pronterface (or actually the Printrun) settings are stored in
C:\Users\ as  'printrunconf.ini' which is a simple readable text-file. So I just copied that to a different folder, and adjusted the setting for my new printer. One day I might even write a Batch file that automatically swaps the .ini files for the specific printer...

..or Octoprint

After facing some troubles with printing from my laptop, I realized this was the reason I mounted a LCD controller board to my first printer so I could print from SD card. After considering the option of moving the controller to my new printer I suddenly remembered reading about OctoPrint, and how convenient it is to have printer that can be controlled over WiFi. Which is true. A Raspberry Pi B+ with OctoPi on it is definitely a great way to create a stand-alone printer which can be controlled through a web-browser. 
My only problem with this setup is that it can sometimes take quite long to connect to the OctoPrint server. After I started my browser and pointed it at the IP address it sometimes takes more than a minute before the control page is visible and responds to my clicks. But once the file is loaded and the print starts everything runs smooth.

USB trouble

Since my other printer has a controller-board attached with  a SD card  slot, I have not been printing a lot from Pronterface directly so I forgot about this. But sometimes it seems like the serial stream to the printer stops or just passes command very slowly. The printhead stops or moves at a very slow pace which  causes humps in the plastic. After some time (30 seconds to a minute) it resumes normal speed  and prints as normal. I found this happened to others as well, but there does not seem to be a general solution, or even a definite cause for it. So I applied two of the tips I found so far:

- Disable the 'Monitor Printer' setting in Pronterface (Settings->Options). You won't be able to see the temperature of your heater and bed, and there will be no text window with printer messages any more. But this makes the data stream to the printer probably more efficient, and there is less chance that your computer is waiting for an answer that may not come. (Pure guessing though, I have not actually monitored the stream to see what's actually going on)

Check your 'Power Settings:
- Make sure the computer is set to  'Maximum Performance' and it does not go to sleep after 2 hours..
- Also in the power settings: check the setting of the USB and disable the "USB Selective suspend"