dual-spool coolness, etc

Anticipating a dual-extruder upgrade soon for the Robo C2 printer—imagine printing in two colors for the same part—I’ve designed and printed a dual-spool holder for those two filaments. It’s an upgrade for the printer and works much better than the original holder.

SideView-C2andHolder

The original spool holder stuck out of that rectangular hole in the back of the printer, sometimes falling out during the middle of a print job. Aesthetically-pleasing but impractical, I’ve now replaced the original.

DSC_0062

I’ve created step-by-step instructions for creating two versions: one for the full kilogram rolls and one for the half-kilogram variety.

Repository

Stability

Another design challenge with the Robo C2 printer is the way that the print bed is cantilevered from the back of the printer. It’s a bit like a diving board and similarly wobbles at its front-most extremity as you’d expect. This isn’t really optimal for 3D printing because it results in poor quality with taller parts and especially those which are oriented toward the front of the printer.

robo

CantileverStabilityPlate

I’ve therefore designed a cantilevered stability plate to afix to the bottom of the print bed itself which should provide some firmness in this dimension. Eight M3 type aluminum bolts are the only thing needed other than this part.

Repository

Advertisements

da plane

Obviously, I watched too much television growing up. Every week on Fantasy Island, Hervé Villachaize’s character would point to the sky and make this exclamation.

da-plane

In a 3D printer, it’s really important to start printing on a known, flat plane. And yet, many print beds aren’t made of something rigid like glass so bigger parts end up shaped like the print bed itself. Even small deviations can mess up a print. It’s a problem to be solved, actually.

OctoPrint

The software that’s running on my Robo C2 printer is a fork of the popular OctoPrint open-source software. What’s cool about this software is that it will allow you to write plugins to adjust the way it works.

GCODE

The language the printer listens to during the print job is called GCODE. Think of it as a list of common instructions that almost all 3D printers use now.

Autoleveling

One of the GCODE commands in question is G29 and this tells the printer to run through an autoleveling routine. In some cases, the printer’s extruder will actually touch the print bed in several locations. In others, the extruder assembly will use a light plus a photoresistor to hover above the bed and to gauge its height above it. Using either method, the printer can make a reasonable “map” of the print bed and mathematically create a virtual plane to represent it. If the print bed is a little lower on one side, this routine should allow the printer to compensate for that.

Only…, it doesn’t really work that great, to be honest. Someone deserves a round of applause for trying to fix the problem but honestly, a manual approach is possibly the better way to go here.

Although these printers have a built-in autoleveling feature, manually leveling the print bed is preferred by those who are more advanced at 3D printing.

The Problem

I’m currently now working to manually adjust my print bed so that it is perfectly level and an exact height from the extruder. In fact, I have two replaceable print beds for the same printer so both of them need to be perfectly level and exactly the same height all around. To complicate matters, I anticipate designing and creating a third print bed for this which is heated. And that one should also be perfectly level and the same height as the others. The final goal will be to easily and quickly swap print beds without the task of fussing with any settings.

So now, having created a number of GCODE files over the last four months, I really don’t feel like editing them to remove that unnecessary G29 command. Once you’ve manually leveled everything, an autolevel routine is not only overkill but it can cause problems to the print quality. I needed a way of programmatically switching off the command when seen.

The Solution

I’ve created an OctoPrint plugin which helps to solve this problem. Assuming that I no longer need autoleveling at the start of each job, the plugin tells the printer basically to ignore any G29 commands. I now don’t have to edit countless GCODE files or worry if someone sends me a file—the printer will dutifully ignore this command.

Github:  Toggle Autolevel plugin

 

j.a.r.v.i.s.

Imagine being able to have a conversation with your 3D printer much in the same way that the Tony Stark character of Iron Man did with his butler-esque virtual companion J.A.R.V.I.S., as voiced by the very talented Paul Bettany.  How cool would that be?

jarvis

So I thought I’d work on an upgrade to my Robo C2 printer to add this capability.

Amazon Echo (Alexa)

Fortunately, Amazon has a product called Echo with an underlying personality & service named Alexa. Since they’ve made the source code and service available to developers, I’ll be using this to get started. For the commercial product, you’d say “Alexa…, what’s the local weather?”, perhaps and she might “read” a brief report for you. And by “read”, I mean:  “a text version of the weather report queried response would be rendered into sound using a female’s voice and played on a speaker”. (We love to anthropomorphize these things now that computers are getting so smart.)

Raspberry Pi

The Robo C2 printer has a Raspberry Pi 3 inside and I’ll be incorporating this into the project; I’m fairly familiar with how this computer works.

Since the price of the official Amazon Echo is about $100, this strikes me as being too expensive since all I really need is a single board computer, a microphone, a storage card and a battery. The Raspberry Pi Zero W fits that description and weighs in at a mere $10.  Technically, I’ll also need a speaker but since I’ve just upgraded the Robo C2 with sound events then I intend to push my generic Echo’s sounds over to the printer to play them there. This will help in the illusion that I’m talking to someone/something “over there”.

Wake Word

The Echo technology out-of-the-box recognizes the spoken word “Alexa” so that it might then attempt to turn your subsequent spoken commands into something recognizable, a “skill”. I’ll be updating it to recognize the spoken word “Jarvis” instead.

Custom Skills

Beyond the included skills, the service allows new user-defined skills to be created and then they’re part of Alexa’s talents, if you will. I shall be creating custom skills so that I might then do a number of tasks with the printer, hopefully to include sending a new job to print. It would also be good to know the status of an existing job without necessarily reading any of the available displays/consoles for this information.

From what I understand, these new skills are a collection of intents and utterances with optional slots as variables.

OctoPrint

The underlying printing software behind-the-scenes on this printer is called OctoPrint. It’s suggested that it’s already compatible with Alexa so we’ll see if that’s accurate.

Size

It should be rather small and handheld. The board itself is about the length of three quarters. I have two different microphones for this—I’ll try to use the smaller of the two. Initially, I’ll use a barrel type of USB charger but I’ll then knock that down to a smaller style when that’s working. I’ll likely solder the accessories if they seem to be happy. And then finally when I’ve settled on the accessories and such, I’ll design and print an enclosure for it. I may or may not include a wake-up button.

PiZero

Custom Voice

I would like to replace Alexa’s voice personality with sound events from the J.A.R.V.I.S. movie character. I’ll see what it will take to make this happen. By keeping his responses to a few generic ones, I might just replace the outbound render-to-text routines so that they just pull from the stock responses as recorded and stored.

Progress

  • The sound event upgrade is now on the printer (imagine a Robo C2 printer making R2D2-like sounds to let you know when something has occurred)
  • I have all the parts I need for Jarvis
  • I’ve created a developer’s account on Amazon and have created my Alexa service for Jarvis
  • I have the Raspberry Pi Zero W computer’s operating system installed
  • The AlexaPi source code is installed and the service is running
  • The microphone appears to be working as expected
  • I need to read through the various tweaks required since I’m running on a Raspi Zero instead of a different version
  • Re-purpose the onboard LED on the Pi to work for the voice recognition notification
  • I need to install the new wake word for “Jarvis” instead of “Alexa”
  • I need to create one or more skills for things I need the printer to do like report status, turn off/on the webcam or to start/stop a job
  • Record and store patterned responses from the Iron Man series of movies to be played on the Raspi 3

 

parts is parts

Still designing/printing parts here in plastic from Autodesk Fusion 360, Cura and the Robo C2 printer. It’s amazing how long it can take sometimes to print.  This particular part printed in just over eighteen hours but an earlier (high-quality) version suggested that it would have taken slightly over four days.

I’ve been having problems with a particular spool of filament from Shaxon. Given that it’s infused with carbon fiber, it has a tendency to want to stick to itself on the spool. So I’ve lost about three print jobs so far from a variety of nonsense related to the filament snagging itself as seen here.

IMG_0190

This then results in the loss of filament to the extruder and the print job continues, going through the motions of printing but without plastic. To fix this, I’ve repurposed the base of my rock polisher to hold the spool and locking it in place with a coat hanger for the moment. When the filament tries to snag itself, the entire rig seems to work out with respect to deploying without accidents.

IMG_0195

If you’d like to see what it looks like to 3D print a part like this, here’s a link to the video I created (using that new camera from an earlier post).

Time-lapse photography of printed part

 

time-lapse photograpy for the robo c2

I’ve upgraded the Robo C2 printer with a nifty Raspberry Pi NoIR camera so that it can take photos, stream video and do time-lapse photography of print jobs. It seems to work great so far and I look forward to putting it through its paces.

And to make this easier for others, I’ve created a documentation repository with step-by-step instructions for anyone else who wants to modify their original printer to do this, too.

Okay, so technically the printer had a glitch 1/3 of the way into printing this (huge) coin example, so I aborted as it started to go funky at some point… which you can’t tell here, tbh.

When printed part becomes modern art

wizarding money

Apologies for the lull in blogging but I’ve been fussing with Autodesk Fusion 360 lately. The current design in 3D printing would be an authentic-looking Knut from the Harry Potter film series.

coins

So for the first coin, I thought I’d try the copper/bronze-looking one since I have some copper-infused PLA filament, some copper-infused artist liquid-stuff and plenty of pennies for electolysis at the end.

I managed to do the front side with a convincing Tratello font for the text and a complete rendering of the details. I will attempt to do a photos->mesh conversion for a better face, however.

Rafting

A raft on the part’s bottom is often necessary so that the part will adhere nicely to the workspace. Unfortunately, that tends to mar up one side of a coin so that approach doesn’t work here. I’ll then want to slice the coin into front/reverse and print both halves.

Weighting

The standard weight of a plastic coin wouldn’t feel right in your hand so the strategy would be to put something inside of two halves to make it seem realistic.

Post-processing

After the actual print, everything you do to make it nice is called post-processing. In this case, this might include assembling the two halves of the coin with glue of some kind, sanding, tumbling in a magnetic rock tumbler device with copper-plated media for a few days, brushed-in application of a copper-infused liquid for touch-ups and finally, wiring and dropping each into an electrolysis chamber so that ionic copper may bind to the outer surface.

Progress

So far, I’ve got one half of the Knut designed and made two test prints. The inside space perfectly matches a penny (which adds weight to the coin and helps to speed up the print time). The filament produces a metallic matte finish and doesn’t appear to have the tell-tale lines you normally might see in a printed part.

The bad news is that my 0.4mm extruder nozzle is too big for this job. I need a tiny opening to print at a higher resolution. So I’ll be ordering some smaller nozzles like this 0.15mm version.

pointOneFive

I have a spare power supply from a computer as well as a recycled hard disk. I’ll remove the top from the disk and then glue some very strong magnets around the top perimeter in alternating orientations every 60°. I’ll need to use my existing rubber drum from a rock tumbler kit for the media and parts.

As for the media, this will be a combination of penny-magnet-penny glued sandwiches plus a collection of copper-clad screws (over steel). This then makes everything inside want to give up copper in the millions of collisions with the copper-infused plastic parts, as influenced by the external rotating magnetic field. After a couple of days, the coins should have a healthy amount of superficial copper added plus a polishing of the printed detail.

don’t make me clamp you, part 3

Oh, the fun.  After a few fails, I managed to print out several C-shaped clamps in carbon fiber—infused PLA, finally getting the temperature right.  I then spent several more hours in Autodesk Fusion 360 to further tweak/finalize the bottom of the chassis for the Raspberry Pi 3 supercomputer and sent that off for a 56-hour print job.  Whoa.

IMG_0139IMG_0138

Four of these clamps then were employed during last night’s printout while it was still going.

IMG_0149IMG_0151

Unfortunately, the pause feature that I’d asked for in the slicing software went rogue upon resume and tried to bury the extruder into the plastic, forcing me to abort at 4am this morning.  <_<

At least there’s much less part curling at the base versus last time. So I think I’ll redesign the clamps to have an even lower top profile and clamp right after the first four layers of the raft are down.

 

don’t make me clamp you…

Trying to push the envelope in print volume on the Robo C2 printer, I’m finding that the part wants to curl on the bed (since the latter isn’t heated). Hmm…

curl

This is a common occurrence, I understand.  It’s due to the uneven temperatures of plastic on the bed versus the new (hot) layers of added plastic. To get a part this big, I actually had to lie to the software and to suggest that the printer has a bigger range than this. This sort of tweaking is commonplace.

Hairspraying the bed is a known gimmick for 3D printing, but as you can see, the painter’s tape is well-stuck to the part.  Instead, I’m thinking of 1) printing the raft at the bottom, 2) pausing the print at this point, 3) removing the bed, 4) applying clamps around the edges and finally, 5) resuming the print job.

Tool-Making 101

From my experience in a plastic manufacturing plant, I learned that if something doesn’t work:  modify it, build a helper tool or change the process somehow so that it does work. Here, I’m opting to build a set of clamps to assist in the 3D print process and to insert a pause into those instructions (“GCODE”) at the proper moment.

Half the battle, then, is designing and building a number of clamps.  To be useful, they should allow their placement at a variety of distances from the edges of the bed. They should hold throughout the job even if things are vibrating and moving around. They should never restrict bed movement. Since the print job goes for perhaps ten hours, they must not fail in any way if I’m not there to watch their performance.

The other half of the battle is to create something which modifies the GCODE instructions to place a pause at the right moment (as soon as the raft has been laid down). My guess is that this will look like an OctoPrint plugin. There probably already are a number of plugins which pause at a particular z, meaning that they will pause the print job when it comes to a particular vertical layer. I was thinking that I might invent a different approach somehow in this space but I’ll see what I can come up with. I like the concept of pause after raft, though, and would imagine that this would be useful enough to others.

This should save a lot of print jobs from curl, I hope. And that should translate into a lot of money saved in filament, as well as time.

clamps

autodesk fusion 360

The new Robo C2 comes with a one-year trial of CAD software which appears to be none other than the probably-expensive Autodesk Fusion 360.  It looks like it allows you to design a part, engineer & simulate forces as well as to create tool paths (slice) a part for 3D printing, for example.  I’ve been attempting to use the open-sourced FreeCAD but the learning curve has been slow for me and I’ve run into some Mac-related bugs when attempting to create a screw thread, unfortunately.  So I hope to give this trial software some of my attention to see if I can design some parts.

AutodeskFusion360

First Thoughts

Wow.  It’s just a beautiful interface.  It starts things up with a clean working space set in a useful 3D perspective.

Because of the barren space they’re trying to create, Autodesk has pushed the typical  File -> Open commands off into a hidden panel.  It’s that tic-tac-toe menu icon in the upper left.  Opening this, I’m guessing that there is some kind of change control software running since they have indicators for “master” (branch), View Project History, Branch / Merge Options, Upload files from your desktop.  So perhaps they store all your files in a cloud-based repository, if I’m guessing correctly.  Additionally, there is built-in support for team members.

From what I’m seeing, there are no example files typical of a design program.  Still within the Data Panel, pressing what I thought was a “back” triangle, I’m now seeing a different collection of options:  My Recent Data, Demo Project, My First Project and then under Samples, Basic Training, CAM Samples, Design Samples, Simulation Samples and finally, Workshops & Events.  So I was wrong in suggesting that there are no samples, they’re just an Easter Egg within the interface.  Double-clicking Design Samples includes three very-sexy designs:  bike frame, lamp and utility knife.  I’m bringing in the lamp.

Viewing a Part

It takes a bit to learn Autodesk’s methods of changing viewpoint but I think I’ve got it.  By interacting with that cube in the upper-right corner, this is how you can quickly move around your part.  Note that clicking the little home symbol returns to the original perspective.  Click a labelled face of the cube, go to that perspective.  Grab and move the corner of the cube and you have the usual behavior in most 3D programs when you grab-and-move the part itself.  It feels like they only want you to click on the part when doing a selection process, so that’s probably a good idea to separate the two activities.

LampPerspective

Selecting Something (a Sketch) to Modify

Looks like their basic building block is a Sketch (a 2D drawing) so when I click on the top of the lamp’s base, this sketch is selected.  Now that it’s highlighted, I’m clicking the Modify icon in the Toolbar.

Modify

Attempting to do a Physical Material replace didn’t seem to work for me.  The method appears to be to click on the top of the base, then shift-click each of the other two parts, then right-click to bring up a contextual menu, choosing Appearance from there.  I then changed the material to a gray aluminum.

Aluminum

A mere ten minutes into it and without reverting to Google searches for answers, I’ve managed to do something in here.  That’s seriously better than my results from FreeCAD.

Price

Okay, so I just had to know how much this would cost me after the trial period.  It’s $40/month as a month-to-month subscription or $25/month if paid up-front annually ($300/year).  That’s probably worth it if you do this for a living.  Is it worth it for a standard hobbyist/maker?  That’s a tough call.  You usually end up spending your money on the hardware and consumables, to be honest.

I think Autodesk needs a notch in their software for the new world of amateurs who need to design parts.  Certainly, their three-year trial for students is awesome but that doesn’t help the rest of us who aren’t commercial.

Overall Thoughts

I guess I’ll need to go into crunch mode this year and to produce most of the 3D designs that I had in mind.  But I will circle back after one project and see if it exports nicely for other (free) softwares out there.  Otherwise, you’d be stuck in Autodesk’s business model and that sounds a bit expensive in the long haul.