Review – M3D Micro 3D Printer

I wanted a 3D printer for a while. So, I have been watching Noe and Pedro Ruiz with Adafruit. They have a great show on the Adafruit YouTube channel called 3D Thursdays. Originally, I was holding out for the Flash Forge Creator Pro. Then Adafruit added the retail version of the M3D to their store. At just under $500, that fit a gift card I had been holding onto. It was also a simpler printer for someone getting started.

I am a digital guy. So this whole real world 3D printing thing is new to me beyond watching the Adafruit team. What follows are the things I ran into from the point of view of a complete rookie in this area. I had to have concepts and terms click that experienced folks with printers take for granted.

Buying the printer

I mentioned I had a gift card. It was the typical visa type card. It was enough to cover the printer. But, I wanted some other items from Adafruit when I ordered. The purchasing system will not let you specify multiple credit cards and how much to apply to which card. Some creativity let me work around that limitation. I purchased an Adafruit gift certificate with the Visa gift card. It promptly came via email. I then applied that “to my Adafruit account creating a store balance. That allowed the printer to deduct from that balance and overflow costs to my credit card for the extra items like filament, etc just like I wanted. One of those items was a good digital calipers tool. Critical later when you want to print your own items.

I also made sure to wait till a Thursday to order. This let me use the 3D Thursday discount code they give out on the show good to midnight. Awesome that it saves me money, but it also lets Adafruit know the sale is because of Noe and Pedro’s hard work. PS saving me money really meant I ordered more to compensate. I had a budget I had set so I used it all.

Out of the box

There are plenty of unboxing videos out there for the micro 3D. It was well packaged. Just be sure to follow their directions step by step. Do not forget to remove all the tape, foam inserts and gantry clips before hooking it to power and USB.

I made sure to have a flat stable table with room for a filament spool stand next to the printer.

Videos I found useful:

Mac vs Windows

I am a Mac person. The current version works but keep in mind the Windows version is ahead of the Mac version in features and firmware. Whenever you start up the M3D software regardless of platform it will check the firmware version. The software and firmware versions are intertwined best I can tell. If I update firmware to print from the Windows version when I go back to the Mac side then the firmware must downgrade before I can use the Mac M3d software. Same going back the other way.


My particular printer does not print center of the bed when on the Mac firmware (2015-10-23-03) despite what the M3D software shows before printing. The print head can go to the center when told. I had even tried the full system recalibrate. The problem goes away when doing the exact same print from Windows with newer firmware (Beta 2016-01-08-12).

You can get scared you bricked your printer if the update gets interrupted. So far I have been able to just go back to the Mac side force a fresh downgrade to recover. There is a tech note on firmware updating in the tech support pages.

Filament and feeding

The biggest problem I had with printing was getting my head around good filament feeding to the printer. Most of the time the internal feed path from under the print bed worked reliably. At times it would still catch. You know when you have filament binding/friction issues because your print will skew as it builds. Drag causes higher layers to be off compared to where they should be.

Remember I said I’m a digital guy? Yeah.. I was dumb and just put the external PLA spool on a hatch box spool holder I got from Amazon. Without what is called a spool bearing. Meaning that it didn’t fit centered and thus did not rotate feeding filament when gently pulled. That gave me most of my skew problems. When Pedro via Twitter pointed out skew means friction I went after fixing that. Did I mention these guys are great about sharing their knowledge? And without making me feel dumb for not seeing the obvious.

I customized and printed two of this bearing from thingiverse. Remember those digital calipers? Came in handy here. But only after I read this Make article on how to use them. When I first took them out, I had an image of Noe and Pedro dressed as wizards waving around digital calipers like a magic wand. I had to measure the hole in the PLA spool and the tube on the holder then customize the bearing print accordingly. They are not a perfect fit because I’m a noob. They probably need to be a hair bigger or have some sort of locking washer to hold them in. Still good enough for me and now I can gently tug with two fingers on the filament and see it turn the spool without catching.

Another thing I learned. Not to be afraid of the emergency stop or abort print buttons. Several times I had not calibrated after changing filament or bumped the print head taking out a print. I could tell I was getting skew or bad layer bonding early. Just be sure if you use emergency stop to use the set bed clear button before you can print again. Calibrating the bed position again isn’t bad idea either. It is better than wasted print time and filament. And this unit is SLOW, but seriously what did you expect for such an easy to use printer for $500?

PLA vs Flex (tough 3D)

So far the best prints I have gotten from the M3D have been with their own PLA 3D ink filament. I have some blue PLA I got from Adafruit and it works, but not as well for when comparing my best prints.

Flexible aka tough filament can be Ninjaflex that I got from Adafruit or the new “tough 3d ink” that I got from Micro3D directly. I haven’t opened my Ninjaflex roll yet. But, I have tried the tough ink. You will get absolutely miserable layer bonding if there is any skew at all due to filament binding. It’s obviously because it ends up a big spaghetti mess instead of the object you expected.

I seem to get way better results printing the tough ink filament from Windows with the updated software and firmware that “knows” the filament cheat codes for the new tough ink. On the Mac version, you have to trick it and setup a custom filament profile. That is another reason I wish they would keep the Mac and Windows in sync.


I have been around IT a long time. The concept of a printer language was not new to me. So the slicing/gcode thing didn’t throw me for a loop.

Slicing is where software takes our 3D object and turns it into printer language (gcode). That gcode are the actual actions the printer takes to put the filament where it needs to go to create our object. The M3D software does a good starting job at this. I did buy a copy of Simplify3D to get more efficient prints with better support structure. The only downside to using Simplify3d is that you cannot just hit print when ready and have the printer start up. The M3D uses some special serial port communications protocol that prevents Simplify3D from talking directly to the printer. So you have to print “tool path to file” then use the “add spool job” in the M3D spooler engine to print that file. Similar to what you see in this gcode to M3D YouTube video. I found that I have better control over support structures and overall printing speed seems better due to Simplify3D being smarter than the M3D software itself. Another great feature of Simplify3D is that it lets you animate a preview of how the object will print. so you can look for problems before spending an hour or more on a print.

I do need to spend more time setting up established print profiles in Simplify3D for quality and filament types I want to use often.


This is not an option in M3D software, but is something you can have enabled in Simplify3D. The benefit to me so far is that it gives the printer a chance to purge out filament as it gets warmed up to print my object. That leaves the excess filament off to the side instead of on my object or throwing the raft out of whack.


Raft? I almost always print one on the M3D. At first filament adhesion to the print bed was not an issue. It did get worse over time with many prints. So the printing of a raft gives the print a more level footing. The downside is that often the raft is harder to break away at higher print resolutions for me. I could probably improve this if I get my head around what all the numbers mean in the Simplify3D settings. That is again something you have little to no control over in the M3D software natively.

The rafts on my first M3D software based prints when the printer was new broke away great. Seems both Simplify3D and M3D generated rafts have fused more with the objects than they did at first. I suspect either operator error or all the knocking around. Or maybe it’s print quality related. The higher the settling the more heat that gets to small area on this printer.


The Adafruit guys love Octoprint. The idea of using an idle Raspberry Pi2 for a print server is certainly attractive. It would save me from leaving my laptop attached to the printer for hours when I’d rather take it with me to Starbucks. You can even turn on mobile interface for your phone or tablet.

I tried using Octoprint from my raspberry pi 2. It was unbearably slow on my B+ so just stuck with my Pi2. I simply could not get it working with my M3D when starting from the Mac firmware. Octoprint wanted it’s own firmware update of the M3D to let it communicate. Even after letting the firmware update my printer, nothing would work. I kept having to downgrade back to the Mac firmware version.

Next, I tried using Octoprint with the beta windows firmware. It let me communicate to the printer and did not prompt to upgrade firmware via Octoprint. I could move the head around. When I tried to print a gcode file that I previously ran with M3D spooler; the print head tried to go up out the top of the printer. So I figured I needed to calibrate from within Octoprint. That bought me a small burn hole into the front left as it moved the printhead outside the bed area. I would NOT be messing with Octoprint and M3D if you are a rookie like me. I am giving up on it until better step by step tutorials are out by experienced folks.

Updated There is a M3D-Octoprint tutorial on Adafruit that mentions leveling each corner manually. It is all on me for not reading that tutorial over again before messing with Octoprint.


I will make one comment about M3D support. When I first started having issues I was worried indicated printer hardware alignment in the first few days I sent in a support ticket. They are either so busy or so understaffed I have only received automated ticket email on it. That is even days later. I have emailed back asking them to close the ticket. If fast technical support on the retail version is a concern, you should take that into consideration before buying.

I love my M3D as someone new to 3D printing. I have learned a lot and made some mistakes. Hopefully, if you are as new as I am to 3D printing you can learn from my experience so far. It will continue to be good for portable printing and small lower detail parts. I expect in a few months I’ll graduate to the Flash Forge Creator Pro unless something better comes out for 2016.