2017-01-06

Getting Started with a MonoPrice Select Mini 3D Printer

This post documents my entry into 3D printing via Linux. Obviously, I'm no expert. Rather, this is where I'm recording what I learn along the way. The intent is, more or less, just sharing my study notes. I needed a place to write things down... might as well share. Nothing original here, no great insights, just organising information in a way I find useful so I can find it again. That's all. If you find it useful then buy me a cup of coffee.

This is a living document... Still printing, and starting to figure out the Cura settings. Now experimenting with TPE-80A filament.

I decided to get into 3D printing with a MonoPrice Select Mini 3D Printer. Why? Because it's cheap, because it's getting rave reviews, and because there seems to already be a great community building up around it.

Background Info:

The Tools:

The slicer: Cura  This is the part that takes the model and converts it to printer-specific gcode.
  • Install under linux via custom PPA:
    sudo add-apt-repository ppa:thopiekar/cura
  • Update and then sudo apt-get install cura
  • Add custom printer to Cura with settings from Tyler Gibson's blog (above).
  • Add your material(s) with specifications.
  • Apparently, it's possible to import settings from a demo gcode file supplied with the printer. (never bothered). I've learned that it will only do this if the gcode was created by Cura and the versions are compatible.
  • Cura's interface is a bit odd and takes some figuring to get the profile info to stick. It also updates daily via the PPA, or so it seems so far. But, it seems to do well as a slicer.
The graphics gcode terminal: Pronterface.py from Printrun. This is used to set some parameters, upload gcode files to the SD card via USB, and can directly print a gcode file as well.
  • Linux prep:
    sudo apt-get install python python-serial python-wxgtk3.0 python-tk git-core python-pyglet python-psutil python-numpy
  • Use GIT to get the scripted app:
    git clone https://github.com/kliment/Printrun.git
  • Running via commandline: (seems to require admin privs)
    cd Printrun
    sudo ./pronterface.py
Inventor: The very expensive CAD to gcode option. (I can use it at work)
  • Adding a 3D printer model involves going into the 3D Print environment, Other printers, and making some change to any existing printer (like setting it to default). This creates an xml file under %appdata%\Autodesk\Inventor 2017\3DprinterDescriptions.xml. Manually edit that file, duplicating a line, and setting a random GUID and other values as appropriate.
  • Download and install Print Studio (a free Autodesk add-on)
  • Restart
  • At that point, using the 3D Print environment and from there running Print Studio gives various options under the media type (advanced tab).
  • Settings do not seem to be quite as fine as with Cura, but there are more options for editing supports.
Fusion 360: The free for hobby/student CAD to gcode option.
  • Starting to use this for a variety of reasons. I quite like it actually. It uses the same Print Studio that Inventor does, and I've still not figured it out. Still using Cura.
  • I am starting to really like Fusion 360. Even the Render environment is a lot of fun.

Things to do after unpacking the box:

  1. Update firmware (seems to be 2 halves). Mine is 24.42, newer than the blogs say.
  2. Enable and configure the WIFI settings. Not yet.
  3. Change PID setting for printhead temp regulation and, optionally, the table heater regulation. Used Printrun's pronterface to set them to values in Tyler Gibson's blog.
  4. Apply table covering of choice. (I've bought tape but it appears tablet screen glass protectors are now the rage). Mine came with tape, so I left it. Had to trim off the corners to get at the levelling screws.
  5. Level table and set print height. Uses the same 4 screws. Mine appears to be slightly crowned, so I set it for the middle. Note that using pronterface to move the table around is way easier than the printer menu and jog wheel.
  6. Lots of reports of loose screws and connectors, so a once-over may be in order. Didn't bother, feels nice, no odd noises.
  7. Set up the printer and filament in Cura, mostly as per Tyler Gibson's blog.
  8. Print the first demo (as specified in the manual) and adjust the print height accordingly. Didn't bother, went straight to printing a token I made in TinkerCAD, exported as an STL, sliced with Cura to gcode, then loaded the gcode into pronterface and told it to print. Came out well. Once it was finished, I raised the bed temperature to 70deg and popped the trinket off. Pictures in a bit.
So, all things considered, it works way easier and better than I had expected. It was, as intended a very easy first print, but still... 

I think I'm going to have a lot of fun with this.

Second Print

Feeling lucky, I decided to print a bigger file that I downloaded. A smartphone stand: (3.5 hr print)
  1. I uncompressed the ZIP.
  2. Loaded the STL into Cura.
  3. Rotated to print it on its side.
  4. Chose a "grid" fill for this print as it seemed more sensible.
  5. Cura said it was nearly a 3hr print. Good enough as a real test.
  6. Saved the gcode file.
  7. Loaded the gcode file into Pronterface.
  8. Connected the printer (in menu - printer was already connected via USB)
  9. Chose SD from the bar above the model pane.
  10. Chose to Upload (note the status bar at the bottom that shows progress).
  11. When done, I used the printer menu to print it.
  12. I disconnected Pronterface during the print. No untoward effect on the printer.
  13. The printer is not that noisy, though it gets annoying when everything else is quiet. I actually find it very difficult to sleep with, even in the next room. Just something about the non-regular whistling and lower tones mixing together... no more overnight printing for me.

More Prints

Going great. I'm still printing at what I've found is "medium" resolution, with a layer height of 0.175. No issues with adhesion at the start, and all the prints are turning out better than I had expected. Settings as follows:
  • Bed temp of 50deg to print, cranking up to 60deg to separate when done.
  • Layer height of 0.175
  • Wall thickness set to .8 (x2) for some prints. A bit thin but works. I'd say the finish is a little rougher though.
  • Speed is 50, with a wall speed of 25.
Starting to run out of the obvious test things to print so now it's a matter of getting into the editing side. Oh, and I created superfine to superrough profiles in Cura to match the layer thicknesses as suggested in the wiki, with other settings that seem to match (just guessing at this point). The 0.175 seems to be about middle. Haven't tried these alternative settings yet.

My Cura Settings

I'm not recommending these... I've no idea what I'm doing yet, but these are the settings I'm playing with at the moment and needed to write them down. This is as good a place as any. Note that the settings includes a page that makes these settings visible.

PLA-SuperFine:

  1. layer height = 0.0437
  2. initial layer height = 0.175
  3. line width (all) = 0.4
  4. Wall thickness = 0.4 (1 count)
  5. Top/bot thickness = 0.6
  6. Top/Bottom Pattern = Concentric
  7. Infill = 15%
  8. Pattern = defaulting to grid but may change depending on print
  9. Printing temp = 210 (pla)
  10. Printing temp initial layer = 215
  11. Build plate temp = 50
  12. Material diam = 1.75mm
  13. Material flow = 100%
  14. Enable retraction
  15. Print speed = 30mm/s
  16. Infill speed = 30mm/s
  17. Wall speed = 20mm/s
  18. Top/Bottom Speed = 15mm/s
  19. Travel speed = 100mm/s
  20. Initial Layer speed = 15mm/s
  21. Skirt/Brim Speed = 15mm/s
  22. Number of slow layers = 2
  23. Enable print cooling
  24. Support = default to off, model dependent
  25. Build plate adhesion = default to skirt, model dependent
  26. Skirt minimum length = 350mm
  27. Print sequence = all at once

PLA-Fine:

  1. layer height = 0.0875
  2. initial layer height = 0.2188
  3. line width (all) = 0.4
  4. Wall thickness = 0.8 (2 count)
  5. Top/bot thickness = 0.8
  6. Top/Bottom Pattern = Concentric
  7. Infill = 20%
  8. Pattern = defaulting to grid but may change depending on print
  9. Printing temp = 210 (pla)
  10. Printing temp initial layer = 215
  11. Build plate temp = 50
  12. Material diam = 1.75mm
  13. Material flow = 100%
  14. Enable retraction
  15. Print speed = 40mm/s
  16. Infill speed = 40mm/s
  17. Wall speed = 20mm/s
  18. Top/Bottom Speed = 20mm/s
  19. Travel speed = 120mm/s
  20. Initial Layer speed = 20mm/s
  21. Skirt/Brim Speed = 20mm/s
  22. Number of slow layers = 2
  23. Equalize filament flow
  24. Enable print cooling
  25. Support = default to off, model dependent
  26. Build plate adhesion = default to skirt, model dependent
  27. Skirt minimum length = 350mm
  28. Print sequence = all at once

PLA-Normal:

  1. layer height = 0.175
  2. initial layer height = 0.3
  3. line width (all) = 0.4
  4. Wall thickness = 1.2 (3 count)
  5. Top/bot thickness = 0.8
  6. Top/Bottom Pattern = Concentric
  7. Infill = 20%
  8. Pattern = defaulting to grid but may change depending on print
  9. Printing temp = 210 (pla)
  10. Printing temp initial layer = 215
  11. Build plate temp = 50
  12. Material diam = 1.75mm
  13. Material flow = 100%
  14. Enable retraction
  15. Print speed = 50mm/s
  16. Infill speed = 50mm/s
  17. Wall speed = 25mm/s
  18. Top/Bottom Speed = 25mm/s
  19. Travel speed = 120mm/s
  20. Initial Layer speed = 25mm/s
  21. Skirt/Brim Speed = 25mm/s
  22. Number of slow layers = 2
  23. Equalize filament flow
  24. Enable print cooling
  25. Support = default to off, model dependent
  26. Build plate adhesion = default to skirt, model dependent
  27. Skirt minimum length = 350mm
  28. Print sequence = all at once

PLA-Rough:

  1. layer height = 0.2625
  2. initial layer height = 0.3
  3. line width (all) = 0.4
  4. Wall thickness = 1.2 (3 count)
  5. Top/bot thickness = 0.8
  6. Top/Bottom Pattern = Concentric
  7. Infill = 20%
  8. Pattern = defaulting to grid but may change depending on print
  9. Printing temp = 210 (pla)
  10. Printing temp initial layer = 215
  11. Build plate temp = 50
  12. Material diam = 1.75mm
  13. Material flow = 100%
  14. Enable retraction
  15. Print speed = 60mm/s
  16. Infill speed = 60mm/s
  17. Wall speed = 40mm/s
  18. Top/Bottom Speed = 30mm/s
  19. Travel speed = 120mm/s
  20. Initial Layer speed = 30mm/s
  21. Skirt/Brim Speed = 30mm/s
  22. Number of slow layers = 2
  23. Equalize filament flow
  24. Enable print cooling
  25. Support = default to off, model dependent
  26. Build plate adhesion = default to skirt, model dependent
  27. Skirt minimum length = 350mm
  28. Print sequence = all at once

PLA-Super Rough:

  1. layer height = 0.3063
  2. initial layer height = 0.3063
  3. line width (all) = 0.4
  4. Wall thickness = 1.2 (3 count)
  5. Top/bot thickness = 0.8
  6. Top/Bottom Pattern = Concentric
  7. Infill = 15%
  8. Pattern = defaulting to grid but may change depending on print
  9. Printing temp = 210 (pla)
  10. Printing temp initial layer = 215
  11. Build plate temp = 50
  12. Material diam = 1.75mm
  13. Material flow = 100%
  14. Enable retraction
  15. Print speed = 75mm/s
  16. Infill speed = 75mm/s
  17. Wall speed = 37.5mm/s
  18. Top/Bottom Speed = 37.5mm/s
  19. Travel speed = 120mm/s
  20. Initial Layer speed = 37.5mm/s
  21. Skirt/Brim Speed = 37.5mm/s
  22. Number of slow layers = 2
  23. Equalize filament flow = off
  24. Enable print cooling
  25. Support = default to off, model dependent
  26. Build plate adhesion = default to skirt, model dependent
  27. Skirt minimum length = 350mm
  28. Print sequence = all at once

TPE-80A-Normal:

  1. layer height = 0.175
  2. initial layer height = 0.3
  3. line width (all) = 0.4
  4. Wall thickness = 1.2 (3 count)
  5. Top/bot thickness = 0.8
  6. Top/Bottom Pattern = Concentric
  7. Infill = 40%
  8. Pattern = defaulting to grid but may change depending on print
  9. Printing temp = 240
  10. Printing temp initial layer = 240
  11. Build plate temp = 0 (using double-sided tape on top of masking tape)
  12. Material diam = 1.75mm
  13. Material flow = 100%
  14. Enable retraction = No
  15. Print speed = 20mm/s
  16. Infill speed = 20mm/s
  17. Wall speed = 20mm/s
  18. Top/Bottom Speed = 20mm/s
  19. Travel speed = 60mm/s
  20. Initial Layer speed = 20mm/s
  21. Skirt/Brim Speed = 20mm/s
  22. Number of slow layers = 2
  23. Equalize filament flow = No
  24. Enable print cooling
  25. Support = default to off, model dependent
  26. Build plate adhesion = default to skirt, model dependent
  27. Skirt minimum length = 350mm
  28. Print sequence = all at once

More Printing

Had some failures, mostly with adhesion. I was printing a model downloaded from ThingiVerse, a Dremel nose finger guard, and part of it kept breaking free during the print. I first tried replacing the stock masking tape with some green painter's tape and that was worse. After much futzing around with using brims instead of skirts, adding supports, and sanding the tape, I managed to get a print that stuck. After that, I realised that the tape is way slipperier than regular masking tape. I replaced the tape and had better luck, though still not as good as the factory tape. I've got a couple of iPhone 5S tempered glass screen protectors on the way from China... which are supposed to be the solution to this problem. Time will tell.... (update) and, no. I had no luck with the glass and went back to regular masking tape, sanded a bit, and now with glue stick before each print. Seems to work well enough. I may try the glass with glue stick at some point, but I'll also see if I can find any of that fabled "blue painters tape" everyone keeps mentioning.

Another print, a whistle (another ThingiVerse download) also failed due to adhesion. This time it lifted up on one side from warping, but I let it print through. That was a mistake as... well... it's a whistle and compressing the tube you blow in kind of changes things. Live and learn. Anyway, after my initial success, I've now got a small but growing collection of failed prints. More successful ones as well... that ThingiVerse can be quite addictive and the printer has been working hard. The first roll of filament is noticeably down so I've ordered 2 more PLA. I think I'll avoid ABS until it's warm enough to put the printer outside while printing.

Note that I'm uploading designs and prints on PinShape. No point duplicating the pictures here.

Filaments

I've ordered a 12-roll variety pack from Filament.ca as well as some TPE-80A and Nylon-645. At this point, I've spent more on filament than the printer, which I consider to be a good thing. I'll be working through the various types, seeing how they do, over the next while.

TPE-80A Filament

I've been experimenting with this soft filament, somewhat rubber-like though it's not. I'd say if feels like it would make good drive belt material. That kid of strength and texture. Actually, I'd say the filament would be a very useful addition to the toolkit, but it is quite difficult to print with. First off, it is too soft to easily feed down the Bowden tube, instead going out sideways at the feed mechanism. Thus, I had to make a part to fill in the spaces so it couldn't escape. That part is here: MSM MK-IV Space Eraser, on PinShape. Solving that problem, the next issue is that it appears to shrink so much after printing that getting it to stay stuck to the bed is near impossible. After a few failed attempts, I decided to use double-sided carpet tape on top of masking tape (to protect the bed). It stuck quite well to the carpet tape but I still had issues with the carpet tape separating from the masking tape. Yeah, it pulls that hard. The next issue appears to be that it slips when trying to feed directly from the spool, and that causes missing lines in the print. The solution to that will be some kind of ball-bearing roller for the spool. Yes, a lot of hassle, but if I can figure out this filament, the rest should be easy.

Some Pictures

Some downloaded models from Thingiverse and PinShape:

The surprisingly hard thing to print:


And, some stuff I drew in Inventor and uploaded to PinShape
Tomy Plarail track bits...




Current Stats:

Nearly 1KG of PLA printed, with about 17% of that as waste. Yeah, I've been keeping all my failures, and supports, in a bag so I can weight it. Just curious.