Skip to content

Open Source Hardware - From Fibers to Fabric

What I Made this Week

Plotter Prints

Plotter Prints

Research

This week we dove into the world of machines. I especially love this week because it carries the spirit of hacking with it.

Textiles and machines are quite interrelated. I mean, one of my favorite facts is that computers were indeed inspired by traditional looms and weaving.

Punch Hole Jacquard Loom

Punch Hole Jacquard Loom

If you want more of the history of the jacquard loom and how it relates to modern computing, here's a cool article!.

Ada Lovelace, a mathematician and writer, had a great hand in the latter work.

Ada Lovelace

Ada Lovelace, the force behind modern computing and programming

I like the idea of combining textiles, traditional industrial machines and tools, and new technology. I mean, that's the whole point of Fabricademy! :D

One of the works explored this week that stood out to me was Jos Klarenbeek's Hack the Heritage project wherein he hacks an analog loom with digital technology and programs the loom to have more complex and unorthodox patterns.

Hack the Heritage Project

Hack the Heritage Project

Weaving, knitting, or printing data on textiles is something that's been a sort of recent obsession of mine.

There's also this very interesting work by Pablo Cazares wherein he hacks a traditional typewriter and converts into a loom. Which then poses so many possibilities which include weaving a letter or weaving poetry. The possibilities are endless!

Typewriter Loom

Typewriter Loom, Pablo Cazares

I love exploring textiles and specifically e-textiles + sustainability. Eldy Lazaro, a former Fabricademy student and CU Boulder PhD candidate, produced this Desktop Biofibers Spinning Machine for applications in biodegradable smart textiles. I actually saw this machine while it was still in-progress in Michael Rivera's lab! Also here's the paper!

Desktop Biofibers Spinning Machine

Biofibers Spinning Machine, Eldy Lazaro

I would also like to point out that Open Source Hardware is a supremely important topic I hold very near and dear to my heart and would like to encourage its proliferation across the world. Please check out the Open Source Hardware Association or OSHWA. I'm a member and they also have a conference every year! :)

OSHWA

Yay! We(I) love OSHWA!

Ideation

I had several ideas for this week - I wanted to explore making a 3D printing pen, a loom from scratch, a paper making machine, a textile making machine from a synthesizer, etc. I don't know!

It's also important to note that the machine this week was to allow us to explore making tools or equipment we might need to use for our final project. Not necessarily but a thing to keep in mind nearing the end of the weekly topics.

While I'm not settled on a final project just yet, I made it a point this year to hack machines since I'd like to step more into the foray of not only textiles and design but electrical engineering. I hope to continue doing that in my studies next year!

Well, this week took quite a turn in that I was not only taken with all the machines I could make but overwhelmed with which one to choose. If that wasn't already obvious.

I thought at the start of this week of building a CNC machine from scratch but it is pricey. I'm trying to save for materials I'll need to buy for the final project. ANYWAY I got really inspired by CNC pen drawing machines. Specifically this work done by a artist Arnaud Pfeffer posted by Anastasia in the Mattermost channel.

Arnuad Pfeffer's Work

Pen Plotting Art by Arnaud Pfeffer

OKAY OKAY so my goal is to hack my friend's 3D printer (an Ender 3) to turn into a pen plotter.

Here are a couple sketches I mocked up. I even toyed with the idea of having a soft gripper be the pen holder but I think that might need more time than I have.

Idea Sketches

My Initial Sketches Using a Red Pencil I found
Weekly Assignment
  • Research and document existing fabrication methods, machines and industries, add references, tutorials and sketches of the hardware you will make
  • Document the process of designing the files for your machine/machine-hack/tool and its fabrication including the assembly process
  • Document the schematic and the software source code (if any)
  • Document the parts and how to make your tool or machine
  • Document your BOM (Bill of materials): electronics, materials, their amount, etcetera (with references of the components)
  • Upload your 3D model and CAM files (if any)
  • Design, create and document a final outcome, a sample project of your process
  • Make a small video of the machine
  • Create an interface for controling your machine (extra credit)
What You'll Need
  • 3D Printer
  • CAD Software - Fusion360
  • Inkscape
  • PLA and TPU Filament
  • Marker/Art Pens
  • Paper (to draw on!)
  • Miscellaneous materials that depend on what machine you want to make! :)

Hacking Ender 3 3D Printer into a CNC Pen Machine

Bill of Materials (BoM)

For this project, honestly, it's not a very involved BoM. Regardless, here it is!

Qty Description Unit Price Link Notes
1 Ender 3 3D Printer $179.99 Link Use your local hobby 3D printer @ your FabLab if you can!
1 PLA Filament $22.94 Link Any color you'd like!
1 TPU Filament $23.99 Link If you want to explore printing with TPU instead!
3 M5x20 Screws - - One is already attached to left hotend carriage of the nozzle housing
2 Art Markers $2.49 At your local art store! Buy online or in-person
1 EcoFlex 00-30 $36.02 Link -
1 Flat Thin Wrench $6.49 Link For up to 8mm< size nuts. May also come with your 3D printer.
1 3mm Allen Key $5.49 Link Again, may come with your 3D printer.

The 3D Printer

Here's my friend's Ender 3 printer, once again making another appearance :) My focus is on the printer nozzle, since I'm designing and 3D printing a pen holder/adapter for the plotter.

Shahlaa's 3D Printer Ender 3 Printer Nozzle


Designing a Pen Holder on Fusion360

Okay so I made several designs. Not all of them, I feel, are as efficient as I'd like but here they are regardless! I designed a pen holder to be screwed on top of the existing printer nozzle housing and one wherein you remove the housing and nozzle itself. Two options depending on your needs/preference!

I went with an idea where you can adjust the screws from 4 sides, almost acting like a spindle clamp on a CNC machine that holds the bit in place while milling. The smallest diameter it can clamp to is 9mm and the largeest is maybe about 15mm.

Pen Adapter V1

With Extruder Housing On

Pen Adapter V2

Taking Extruder Housing Off

I don't think I'll be making some kind of pneumatic actuator to hold the pen with air pressure, but I made a mold anyway that, if the aforementioned clamp still let's the pen slip, I want to use this silicone piece to adhere to the pen and prevent slipping.

Silicone Bubble Mold

I ended up going with the following design (inspired by one I saw on Thingiverse). It hangs on to the larger screw on the Ender 3.

"Final" Pen Holder Design

This is my "final" design. I put that in quotes because the work doesn't stop here!.. but the week does >:3

3D Printing the Parts

I printed my parts at 40% density. I set the heat bed temperature to 50C and the filament temperature to 210C. For my PLA filament and TPU filament for my final design.

Everything else remained the same by default for PLA filament on CURA. I had overhang on some parts so I did check the for Support Material but set support density at 10%, just so I wouldn't have such a hard time to removing it from my actual print.

Printing these kinds of parts does create the potential for overhang, like I said. Overhang is a part of the design that's not making contact with the bed and has no structural support underneath it. Make sure when you print overhang prints, you situate models with the largest surface making contact with the bed, level the bed evenly, and print a brim to keep the print adhered to the bed while printing.

This was truly one of the most challenging parts of the project. I was attempting to make an adjustable pen holder to support various pen barrel sizes. I also wanted to design a chuck (the part of a CNC where the bit is clamped) but I was already a little behind.

Pen Holder 3D Prints

My various pen holder 3D prints

I designed some molds to cast rectangular pieces in EcoFlex 00-30 and have that act as my flexible "resizable" adapter. Maybe one that could even be modified to be a soft inflatable gripper adapter. Probably next time!

3D Printed Silicone Mold

Software Setup

  • First, have Inkscape. Download it here if you don't have it!

  • Download the Gcodeplotter extension. It's here. Download the Source Code (zip) file.

Github zip File Download

  • I'm using Mac OS. For Mac (perhaps for Windows as well), navigate to Extensions > Manage Extensions. On the pop-up window, go to the Install Packages tab, click the file opener icon, and select your .zip file.

Extensions Menu

  • Close the pop-up window, close Inkscape, and restart it. When you select "Save As" for your .svg file you should see .gcode as a filetype you can save now.

Inkscape Designs to Plot + Configuring Inkscape Files into .gcode Files

Setting up your Document

  1. Important NOTE! Edit your document size to match your printer bed size. The Ender 3 I have is 220mm x 220mm. This is important when editing General Settings (shown below), where right x-coordinate and upper y-coordinate are your bed measurements. Go to File > Document Properties to do this.

  2. Draw an invisible rectangular border to keep away from the edges of your document. 185mm x 185mm is a good size.

  3. Adjust your design's "Fill and Stroke" Settings. (Don't select the border unless you want to draw your border as well). No Fill, set stroke paint to RGB, and adjust stroke size to your pen size.

Fill Stroke Paint


Stroke Style

Adjust stroke size to your pen tip size

I designed 3 designs on Inkscape for this project. I want to explore designing more fabric fold-like textures after this. They look so cool!

Folds More Folds


Deep Scallop Design

  • "Save As" to your .svg file on Inkscape.

Save As

  • Select ".gcode" as a filetype. Select "Save".

.gcode filetype

  • Input these values under the General Settings pop-up window.

General Settings

  • Input these values under the Drawing Settings tab.

Drawing Settings

Installing the Pen Adapter

Like I said, I used the existing infrastructure on the printer nozzle carriage. I installed Version 2 of the pen holder rather smoother than version 1. I attached V2 in the files below. And printing it with TPU adds some leeway! How cool!

I also thought I'd just use silicone to hold the pen in place but it's not very stable. So, I added 4.6-4.8mm screw holes on 2 sides of the pen holder. They're for an M5 screw but a smaller hole allows you to actually tighten the pen in the holder.

Installation 1 Installation 2


Calibrating 3D Pen Plotter

Now, we're going to calibrate the system. IMPORTANT NOTE DON'T put the pen in the holder you just installed yet.

Okay, this is where things got a little dicey.

First, turn on your 3D printer and press the knob to go into the other screen and click Motion. Click Auto Home. Once you do this, the printer will home the nozzle. Go back into the Motion screen and hit Motor Off so you can move the printer nozzle and bed freely.

Auto Home Motor Off


Install the pen in the holder and start adjusting the pen height in order for the pen to make contact with the paper on the bed.

Installing Pen Calibrating


I downloaded a file from someone's GitHub documentation attempting to convert a printer to a plotter. It was to test how much contact the pen makes with the paper and if the drawing is centered.

Unfortunately, this file is coded with a home (X, Y, Z) position that is appropriate for the NOZZLE not the pen adapter we installed to the left of it. I'm sure it's also connected to the code of the gcodeplotter extension I downloaded earlier. That's why the calibration file design got cut off on the right.

Calibration Cut Off

Calibration File Cutoff on the Right

Now, I found many references for how to do this honestly. Some are outdated but I included some of those references at the bottom of this page for when you want to go ahead and hack one yourself.

I did edit the calibration file myself. Replaced the header of the .gcode. The header starts at the top of the file (which you can open with any text editor or even uploading it to the files folder on Gitlab!). It goes from G00 to the last G00 before G01 starts.

.gcode Header

Header to replace with the code below

In the file above, I sized my deep scallop design down just to be safe.

Replace the header code pictured above with the following:

G00 S1; endstops (This line doesn't disable soft limits, M211 does)
G00 E0; no extrusion
G01 S1; endstops
G01 E0; no extrusion
G21; millimeters

M211 S0 ; !! CRITICAL: Disable software endstops temporarily

G91 G0 F900.0 Z10.000; pen park !!Zsafe
G90; absolute
G28 X; home
G28 Y; home
G28 Z; home

; Move to the physical location of X47 Y17 Z0.4
G1 X47 Y17 Z0.4 F6000 ; Move the nozzle to the new physical start location

G92 X0 Y0 Z0 ; Define THIS location as the new 0,0,0 (origin)

; Your drawing commands will now run relative to the new origin
G00 F900.0 Z0.400; pen down !!Zwork 
; ... rest of the design gcode ...

Below where it says "rest of design code", that's where the remaining G01 lines go, which is the code that draws your design.

Insert the following at the very end of your .gcode file.

M211 S1 ; Re-enable software endstops for safety on the next print

I'm basically telling the printer to move the nozzle 47mm in the X direction, 17mm in the Y direction, and 0.4mm in the Z direction. That's my new "origin" if you will. To account for the fact, again, that my pen/marker is to the left of the printer nozzle.

How did I arrive at those new X, Y, and Z values, you ask? Well, I'll tell you.

When I Auto Home the printer, I then click the knob, press Motion > Moving Axis and move the X, Y, and Z axes to center my marker tip at the corner of the bed. However much I moved I took note of what that was as displayed in mm.

X-Direction Y-Direction


Now, at this point in my project, nothing is refined in the least bit. Editing the .gcode file is really a matter of how big or small your design is and where you would like your origin to be. I would recommend your design be around 140mmx140mm. If you want your pen origin to move to a different position, edit the following line in the header code I provided above.

G1 X47 Y17 Z0.4 F6000 ; Move the nozzle to the new physical start location
X, Y, and Z are in mm so put your desired position!

It's not the most ideal solution since you would have to replace these lines of code to every .gcode file you produce that you would like your plotter to draw. But it's a start!

3D Pen Plotter Settings on Ender 3

Disabling extrusion, the fan, and bed temperature should be encoded in the .gcode file already but just to be safe. Check the settings on the printer.

Printer Settings

Printer Settings

Future Work

Now, there's so much I'd like to do at this point - revise some of the .py (python) files in some GitHub extension folders, redesign and 3D print a new pen adapter where I can remove the nozzle and install my adapter. Unfortunately, I'm out of time. But in the near future! I hope to pick this up again! :D

Final Product! - Moving and Grooving

Files

References