recycle, re-use, re-purpose – part ii

Continuing with the work to re-purpose a computer mouse as a filament movement detection device, I designed and printed some parts for this. The bottom part is perhaps 5mm in height from the spool itself and is reasonably a good distance to see changes.

I’ve edited the earlier Python script which originally detected the scroll wheel button; it’s now detecting movements of Y as if the mouse were being moved on a mousepad. It will only do this if I take the white assembly and move it around on a patterned surface, however.

To help the mouse detect movement better, I’ve tried using both grid paper and a polar version of same. I don’t love the feedback loop that’s going now. I’m sure there’s a better way to get this movement detected all the time, though.

IMG_0115

IMG_0116

IMG_0118

recycle, re-use, re-purpose

This week’s project involves dealing with filament-delivery problems on my 3D printer. Out of the box, the filament runout detection never worked. Frankly, it was a terrible design to begin with from the manufacturer and I’m convinced that someone at the factory just turned off that behavior anyway.

As a result of this, I’ve lost a few print jobs over the last year. In only two cases, I simply ran out of filament for large parts. In all the remaining cases, a number of problems contributed to the loss of filament delivery to the printed part:

  1. simple end-of-roll loss of filament
  2. spool sticking to manufacturer’s poorly-designed spool holder
  3. cross-threading of the filament on the roll
  4. hot-spooling the filament at the factory which resulted in filament which sticks together
  5. filament like carbon fiber—infused which likes to stick to itself
  6. old filament which is now brittle and breaks as a result
  7. overall poor design of the spool (boxy) shape itself, resulting in cross-threading
  8. overall poor design of the filament delivery path itself, resulting in too much force needed to extrude
  9. filament thickness quality issues as combined with PTFE feed tubing, resulting in stuck filament in the tube
  10. too-flexible filament as combined with any of the conditions above, resulting in filament notching at the bowden gear
  11. z-offset too close to the bed, resulting in hotend jamming
  12. poor first-layer adhesion, leading to a build-up of filament and ultimate hotend jamming

Now granted, the bowden drive for this printer is one of the beefiest NEMA 17 style of stepper motors I’ve seen. And yet the number of filament delivery—related problems is just too high to continue to ignore. So I’ve decided to finally deal with the issue rather than working around it.

Ideas & inventions

Remove the stock holder, add bearings to its replacement

I designed, printed and assembled a very good dual-spool filament delivery system which worked much better than the stock filament holder. I sometimes still use it.

DSC_0062

Dual runout switches

Perhaps six months ago, I designed, printed, sourced parts for and assembled a very good dual-spool filament runout detection block to replace the stock part. I have yet to install it since I’m not in love with the idea of the filament path beginning at the table level. Time has taught me that the spools need to be higher than the printer for this to be optimal. As designed, though, it works in principle to detect loss of filament from both spools.

DSC_0211

And yet, this entire concept does not directly address the problems associated with cross-linked filament. It only addresses the loss of filament as seen in a switch.

Parabolic spool guides and re-purposed monitor stand

Additionally, I designed, printed and assembled parabolic spool guides to better deliver filament (especially for hot-spooled or otherwise sticky filaments like carbon fiber). This I combined with a designed/re-purposed dual-monitor stand to move the spools above the printer rather than below.

SpoolHolderOverhead

SpoolHolderWithBracket

Remove the temperature gradient

First-layer adhesion was aided by adding a foam enclosure/door and a temperature-monitoring Raspberry Pi 3B to the inside (opposite the internal webcam). The latter helps to heat up the print volume area, keeping things from 90-100 degrees Fahrenheit.

foam

Remove the PTFE tubing

Filament diameter inconsistencies resulted in filament getting stuck in the PTFE tubing. I now rarely route the filament through the tubing, having removed the awkward bottom-to-top filament delivery path from earlier.

And finally, a filament movement detection mechanism

This weeks work then revolves around fixing the underlying problem. The solution isn’t filament runout detection. The more accurate problem and better solution is actually loss of filament movement and its detection.

When I began to think of solutions, in my head I was adding black/white encoder rings to the sides of the spools themselves. I would need to add those to all spools of course. I’d also need to design something which reads those as ones and zeroes.

I decided that a roller/follower which is turned by the spool is also a solution. I then envisioned writing drivers and creating a small circuit board for all this so that it could talk to Raspbian, the operating system which OctoPrint runs on.

Mouse to the rescue

Finally, it hit me that a standard computer mouse does this naturally. The older style of ball mouse has a follower which detects when the ball is moving. Even the newer style of mice still have a scroll wheel which is covered in rubber and would do nicely. In my imagination, the first iteration of this had the filament trapped against that rubber wheel. In today’s version, the wheel merely comes in contact with the side of the spool itself for the win.

As a bonus, the computer mouse already has the serial communication and Linux driver built-in. It was trivial to write a small Python script to detect scrolling events.

no mice will be harmed … in the making of this gadget.

The mouse should fit nicely and without any modifications to a 3D-printed holder. The serial connection goes to the Raspberry Pi and is then detected in an OctoPrint plugin. During a print job the scrolling events will be monitored; any loss of scrolling over the sampling period will then pause the job and alert the operator with a sound event.

rat on computer mouse

logistics for the black pearl lcd theme

I decided to add more to the earlier Black Pearl Conky theme for my 3D printer’s TFT screen. It turned out to be a lot easier to do since I’d just finished a new module for OctoPrint.

octo-client:  A node-based module for directly talking to OctoPrint to gather raw information.

octo-conky:  A Conky script for returning that information in a pleasing way.

The new information is there after the “Black Pearl v1.0.1” line where it pulls the version and temperature from the printer.

IMG_0037

the robo 3d c2 printer

For months now, I’ve been wanting a 3D printer to create plastic parts and I’m guessing that I just made the best choice by buying the Robo C2.

robo

First Impressions

First of all, it’s an attractive printer in the same way that EVE (from the WALL•E cartoon) was cute.  Perhaps you can see the resemblance?

eve

Second—and you guys should know by now how I love them—this printer is driven by a Raspberry Pi 3 computer inside!  I hope to clone the microSD card in that computer and go to school on their efforts to hack an even better printer out of it.

Third, the product is open-sourced and crowd-funded.

Fourth, they’re a local company.  Their office is maybe a 20-minute drive from where I live in San Diego.  Given that most people would have to purchase this online and have it shipped, they wouldn’t get to see it in action like I just did.

Fifth, it includes an iOS app which allows you to control this and any other Octoprint-enabled printer.

Sixth, at 20 microns, it looks to have the best resolution of any of the printers I saw at Frye’s Electronics and most of those had a price tag above $1400 to reach the 50 micron resolution level.

Finally, it looks like it comes with a one-year license for Autodesk Fusion 360 which appears to be a very nice program for designing.

Research and Past Experience

I spent a fair amount of time before purchasing this by researching 3D printing, the types of plastics, the pitfalls to overcome, etc.

This particular printer doesn’t have a heated bed (the place where the project is made) so it may not do a great job with ABS plastic without a lot of trickery.  The standard voodoo that is necessary is to get inventive with the bed covering so that the project adheres nicely, doesn’t skip around and further, doesn’t warp due to uneven heating.

So for an unheated bed, the PLA type of plastic is the suggestion here and I’ve purchased an additional two rolls of the stuff to get things started.

Interestingly-enough, a few years ago I worked in a large plastic manufacturing plant so I have a little experience making plastic of the rotomolded variety.

caveman

In this industrial-sized version, colorized plastic powder is measured and put into aluminum molds on a steel frame wheel.  And this wheel then is inserted into a very large 700°F oven.

But for the consumer variety, you spend most of your time in a computer-aided design program, send a job to the printer and then wait hours (usually) to see how it turned out.  This ought to be interesting.

Projects

I have a few projects in mind for this.  I snagged a Robo Drone Kit while I was at Frye’s to give me a project which should produce some reasonable results.

dronekit

I hope to design and print an enclosure for the e=mc2 project from earlier.  Although it’s difficult, I hope to make this a clear enclosure ultimately.

I’d like to work up a design for a heated bed for the Robo C2 since it sounds like this would make ABS-related print jobs more successful.  I think I’d also like to test new bed materials since the field of 3D printing is still new and inventiveness is required here.

Given that the Robo C2 has a Raspberry Pi computer inside with OctoPi software running on it, I should be able to modify the design, add things onto the printer and do notifications, for example.  I could add an internal webcam to it, for example.

And then finally, I think I’ll spend some time on post-print finishing techniques to see what I can do in this area.

Results

Here’s the first printout from the Robo C2 after some upgrades and dialing in that critical z-adjustment.  Obviously, it’s a money clip.  It’s light blue but the red background makes it look gray otherwise.  It’s very smooth for a 3D-printed project and amazingly so for the $699 price tag on the printer.  The small, flat piece is called a “raft” and is meant to make things stable during printing, btw.