what’s up, dox?

Earlier yesterday, I visited the Amazon Bookstore and saw one of these DOX things.

DOX

So, of course I thought, “I can do something like that”. Returning home, I immediately designed a base for the Echo Dot and sent it to the printer.

I’d initially decided to use the new GP3D FLEX filament I’d bought earlier but it’s so amazingly flexible that it adds challenges to the process:  1) it really adheres to the print bed so well that it refuses to pop off from it, it must be peeled off instead; 2) when the bowden pulls on the main filament roll, the material is stretchy rather than delivering like you’d expect; 3) the diameter of the filament is too inconsistent and gets caught up in the PTFE tubing.

That said, I turned back to my standard PLA filament and proceeded. The part finished last evening and it fits perfectly. It wants some light sanding where the supports were but it’s very functional, directing the downward-facing speaker toward the consumer and lifting it from the table by 25mm.

IMG_0040

IMG_0039

 

Advertisements

the braille project

Yesterday, I designed a Node-based program to generate a 3D mesh file programmatically from the input text to create a braille message.

Screen Shot 2018-07-03 at 5.22.55 PM

The concept is easy enough to grasp. Braille is a simple combination of raised dots. If we can know that combination, then it should be easy enough to design a 3D CAD object which uses tiny spheres to render the scene.

But I didn’t want to laboriously design this in Autodesk Fusion 360 and I’m sure few people would. Everything has to be precisely placed and that’s just too much manual work. Even if you did, it’s not very easy to maintain. If you did catch an omission, just think of all the work you’d have to do to move things around! I’m relatively certain that this is currently how people create braille-based printouts as seen on an ATM machine, for example.

3d-braille

So yesterday, I designed and created a program for doing this. Generating the STL file was then painless and took less than a second. Printing it then took five hours so I got to see it as a finished part this morning.

IMG_0038

saving the day for thirsty students

The place where I work has a refrigerator in the kitchen. The water dispenser in the door is wonky and before yesterday, it wouldn’t turn off automatically. Perhaps at one time, there was a spring which makes that tab want to stay forward but it was broken a long time ago. Most new students were initiated to this when they accidentally spilled at least a cup of water on the floor.

dispenser

So of course, I decided to fix it using the 3D printer at work. This was made more difficult since I hadn’t brought a digital caliper with me nor a ruler. I used earlier-printed parts to measure the tab (since I did know their dimensions) and then went to work.

Autodesk Fusion 360

The first step was to design the part in a CAD program. Imagine this then fitting over the tab with the extended “spring” resting against the back panel of the refrigerator. I had to plan in the amount of force required as well as that necessary to keep the part from sliding off as well as the internal play required to fit this over the tab.

Screen Shot 2018-06-30 at 8.35.33 AM

FlashPrint

Next, it was necessary to “slice” the model file into a toolpath file for the printer, a set of instructions which it needs to create the part. I used PLA filament since it’s easy to work with and decided to orient the part sideways on the bed so that the spring part wouldn’t be an overhang (which sometimes causes problems). This meant that the printer at the end would need to bridge the two walls it had created with a 5mm gap between them.

Flashforge Creator Pro

I transferred the toolpath file to the printer and got it going, noting the time. I made some guesstimates about when it would finish and it was done about five minutes after my shift completed. It bridged that 5mm gap without a problem, finishing the “roof” at the top.

While it was still hot, I put the part in place on the refrigerator and it fit, working perfectly and solving the problem. Use a glass to push against the tab, water dispenses. Release and the water stops. No more huge spills on the floor as a result.

Refrigerator

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

edit gcode externally

I’ve been making some updates to a command line interface (CLI) program lately. I wrote it in the Go language and it’s useful for editing 3D printer gcode files.

A GCODE file is a set of toolpath instructions for both 3D printers and CNC machines.

GcodeEdit

The program is called GcodeEdit and it can so far do the following:

  1. Update the hotend’s temperature, useful for changing the filament material you’d like to use for the part
  2. Show a variety of information from the file, like number of layers and the slicer software which was used to create it, for example
  3. Remove all heat-, fan- and extrusion-related commands so that you can watch the printer go through a “dry run” without wasting any plastic
  4. Repeat the indicated layer but without extruding any plastic, suitable for “ironing” out the last layer and useful during the first couple of layers, for example

I intend to keep adding options to this program and I use it myself, for what it’s worth.

Repository

recycle, reuse, reinvent

Someone had a dual-monitor desk stand for sale (something like $10) and I bought it without much in mind for it. I liked the sturdiness of it and it’s been in my foyer for several weeks.

Yesterday, I designed a VESA mount in PLA and printed it over the span of fourteen hours and it turned out to be perfect. It now accommodates the first of two filament spools for the 3D printer.

SpoolHolderOverview

SpoolHolderWithBracket

SpoolHolderOverhead

black pearl

Since I’ve had the 3D printer for nine months now, I thought it was time for a facelift. I decided to re-theme it completely on the software side of things. The first step was to change out the web interface (stripping away all of Robo’s theme and modifications) and now I’ve replaced the LCD menu as well, which now looks like this:

Black-Pearl-Screencap

PrinterWithLCD

I created this design using Conky, a system monitor from the UNIX world. The theme was inspired by an earlier, larger desktop version of this by Ninquitassar but this was a total re-write.

I hope to now re-theme the web interface to match this styling and to then fork & recompile Conky itself to natively provide the details of the in-progress print job itself. It would be nice to have a feedback loop for the Amazon Echo Dot so that the voice controls will in some way alter the screen as an acknowledgement.

Repository

hot-crossed filament

The dirty little secret in the world of 3D printing is that things go wrong (a lot). This week’s problem to solve is the frequent cross-threading of the rolls of filament itself.  Filament manufacturers don’t seem to understand the requirements necessary for doing this right so it’s up to the rest of us to fix the problem ourselves.

Each time cross-threading occurs during a print job, you lose the entire print since the feeding of that filament just stops. In this photo, the printer has actually lifted the entire holder assembly off the workbench:

IMG_0503

Spool Guide

To deal with this problem, I decided to re-invent the spool holder itself by changing the inner topology from a rectangular shape to parabolic. It now delivers filament in a straighter path to the filament sensor block on the printer, minimizing cross-threading.

The reusable spool guide design incorporates eight individual parts which attach together using standard aluminum hex head bolts.

IMG_0509

Repository

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

If you remember from my earlier post, I wanted to build the cool AI interface from the Iron Man movie series: J.A.R.V.I.S., as voiced by Paul Bettany.

jarvis

Well, I’ve done it. I wrote up several intents in an Amazon Alexa Skill, created an Amazon Lambda function as the end-point, created a proxy in Node (which is served up by a Raspberry Pi Zero W single-board computer) to forward inbound Internet traffic and I’m now able to ask an Amazon Echo Dot how my printer is doing at home.

EchoDot

Remotely Control a Printer

For example, I can say:

Computer, ask Jarvis for my printer’s status.

…to which she will reply:

charming-pascal is ready and operational.

Now remember, I’m two miles away from home while I’m doing this and all of this still works.  I could ask:

Computer, ask Jarvis which file is selected.

…and she’ll say:

RC_microSD-clip.gcode is currently selected.

This is useful to know when I later code this up to remotely print a job as well. I can also ask:

Computer, ask Jarvis for the job status.

…and the reply might be:

charming-pascal is finished printing RC_microSD-clip.gcode

In the collection of skill intents, I now have the following:

  • Stop the print job
  • Start the print job
  • Pause the print job
  • Resume the print job
  • Ask for the print job status
  • Ask for the selected print job file
  • Ask for help
  • Open the Jarvis app

And I’ll need other intents to select a file to print, preheat the extruder and possibly other things yet unimagined.

I’ll definitely want to remotely see the output of the internal webcam inside the printer to make sure that it’s happy; sometimes print jobs go afoul for a variety of reasons.

Remote Power Control

In addition, I also purchased a TP-Link Smart Plug to control power to the printer. I now have an Alexa skill to turn the printer on and off remotely.

tp-link

Computer, turn on my 3D printer.