by makeme

Archive for June, 2011|Monthly archive page

Practical Payback Period

In Uncategorized on 12, Jun, 2011 at 20:29

The payback period of an investment is the amount of time it takes for that investment to produce as much money as it originally cost. The assumption is that any money made/saved AFTER the end of the payback period is what you invested for in the first place. The payback period, then, is how long you have to wait to start seeing a return on your investment.

A 3d printer is, obviously, an investment. For the people who are interested in 3d printers themselves the payback period isn’t really an issue, but for the people who are only interested in what 3d printers can do for them it’s a different story. A common question is, “What can you do with a 3d printer?” People like me are usually quick to skirt the question with a passionate description of the future of 3d printing…but it’s a good question.

What CAN you do with a 3d printer?

Or, more specifically, WHY would the average person pick up a 3d printer at Sears on their way home from work?

I doubt that the proliferation of 3d printers will turn a lot of people into “makers.” Most people probably aren’t going to ever design a single printable object. Does that mean they’d never get their money’s worth out of a 3d printer? Well, I’d like to argue that the average person absolutely WOULD get their money’s worth out of investing in a 3d printer. The only thing holding back 3d printers from being a good investment RIGHT NOW is that they cost more than $500.

What I did was I went through thingiverse and kept track of all the things I could find that served a practical, but not overly specific, purpose (the table is included at the end of this post). After I found something that looked practical, but pedestrian, I shopped for it online. I found that most things could be had for about $1-2 dollars, which sounds about right for hunks of plastic. A few things, however, were more expensive. To make this a realistic test of the principle I made an effort to price out the cheapest thing I could find. Even holding the costs down, the estimate came out to more than $400 in savings.

This doesn’t include costs like the raw plastic, or electricity, but I can’t imagine those are greater than or equal to the costs of gasoline and shipping, which aren’t included either. Obviously, one could perform a more rigorous analysis, but I think the point stands. An average person COULD pay back the cost of their 3d printer $1-10 at a time…just as soon as the cost of the printer comes down below $500.

The cool thing is that we’re right on the edge of that price point. A 3d printer, the eMAKER Huxley, just recently got down to a promotional price of $500 each (for preorders).

So, if you picked up a $400 3d printer, and started using it to make things instead of buying them, how long would it take you to get past the payback period? Estimating 30 minutes per print, and estimating 70 items in that list, it would take you just over a month of printing 1 hour a day to have saved the total cost of the printer. Of course…handy people who like to do things for themselves will benefit more from this technology, but I think everyone else will start to get used to the convenience.

It’s not just a question of how much money you save, but also how much time and frustration. Pretty much everyone keeps a microwave around simply because it’s waaay easier and quicker to use than an oven or a trip to a store or restaurant. When 3d printers come down to $100 they’ll pay for themselves so quickly that apartments and hotels will keep them in rooms, right next to the microwave. The convenience factor will be overwhelming because the payback period will be functionally irrelevant.

estimated savings # project link

$2.00 each child deterrent device
$4.00 pair tire leveler
$1.00 each drink coaster
$1.00 each guitar pick holder
$20.00 each tripod mount
$7.00 each paper towel roll holder
$50.00 each lens gear for follow focus
$124.00 each peristaltic pump
$40.00 each solder fume fan mount
$3.00 each pillbox
$0.75 each bag clip
watch back replacement
$1.00 each small perf board
$2.00 each replacement table/chair foot
$1.00 each replacement drawer slider
$5.00 each capodastre
$5.00 each wall mount
$1.00 each headphone sorter
$1.00 each replacement knob
$7.00 each ukulele bridge
$1.00 each picture frame
mop/broom attachment
$2.00 each hex key holder
$1.00 pair jump rope handle
$1.00 pair toilet seat hinge
$0.50 each wire cube storage bracket
$1.00 each pencil holder
custom cookie cutter
wet food divider
$10.00 each cell phone stand
$2.00 each candle holder
$5.00 each emergency belt buckle
toilet seat holder
$0.10 each silverware
$1.00 each wall mount bottle opener
$3.00 each door latch
$20.00 each third hand PCB vice

stereoscopic camera mount
$30.00 each orange juice squeezer
$2.00 each lint roller
$2.00 each soap tray
$1.00 each sim card adapter

recycling bin key
$1.00 pack table cloth clamp
$12.00 each collapsible traffic cone

shower bar support
$1.00 each tweezers

$3.00 each pet brush

textile fastner
$5.00 each tie holder
$3.00 each sandpaper block
$1.00 each guitar string winder
$1.00 each whistle

curtain clip
$2.00 each protractor
$2.00 each component bins
$6.00 each coin holder
$10.00 each bird feeder
$1.00 each carabiner
$1.00 each file handle
$10.00 pack tarp clip

water bottle camera mount
$3.00 each door stop

Easy 3D Printer Toolchain

In Uncategorized on 07, Jun, 2011 at 21:32

The software that controls open source 3d printers is still in a state of flux. It can be difficult to navigate your way through all the options to try to put together a toolchain that will do what it is supposed to do. I know, I’ve been doing just that for a while now.

Eventually I figured that I was only really helping myself because I was piling one patch onto another trying to make things work in my specific situation…and it wasn’t working all that well. So, I started over.

The primary factor in deciding what toolchain to put together is the operating system your computer runs on. Normally, this would seem to be an insurmountable obstacle, but these days it’s really not that big a deal. We can standardize on one single OS by creating a bootable flash drive. I have picked Ubuntu because it’s totally free. So, if you have a 2GB flash drive, or if you can scrape up the cash to buy one, you can simply boot your computer into a brand new OS without actually changing anything about your computer. This step ensures that you are starting from a totally clean install, and that your install is the same as everyone else’s install.

From that point forward all you have to do is download Java, which is free, and Python, which is free, and Arduino, which is free, and in this case I’ve choosen ReplicatorG (best and best supported), which is also free.

But don’t worry. I’m not going to leave you to figure out how to do all that. What follows is a detailed checklist that will guide you through this process. You don’t have to know ANYTHING about ANY of those programs. If you can click buttons (and can afford a 2GB flash drive) you can get your bot up and running.*

*I am sort of assuming you’re using RAMPS and Windows, but I can’t test this process with anything else at the moment.

How to do it (this process is largely based off of this set of instructions on the RepRap Wiki by Bristolalweb)

  • You will need:
    • a computer with 2 free USB ports (one for the flash drive and one for the 3d printer) and a wired internet connection (no need to mess with getting wireless working).
    • a flash drive (at least 2 GB)
    • an Ubuntu image
      • The Ubuntu site is pretty easy to navigate.
      • Getting the Long Term Support (LTS) version is recommended. New Ubuntu releases don’t have support for everything build in; people add that stuff over time. If you get the newest version you will probably find that it doesn’t support one or more of the things you want to do. For example, when you try to use the Universal USB Installer, the newest Ubuntu release might not support a protocol necessary to let the system treat a flash drive like a hard drive. The LTS version will.
      • Make a note of the version name and number: 10.04 Lucid Lynx
    • An installer
  • plug the flash drive in to the USB port and make sure the flash drive doesn’t contain any files you want to keep
    • make a note of the drive letter that identifies the USB key
  • quick format the flash drive
    • open windows explorer
    • right click on the drive letter and select ‘format’
    • select ‘Fat32’ and ensure ‘quick format’ is checked
    • click ‘format’
  • run the Universal USB Installer
    • select the version of Linux that you downloaded
    • select the file you downloaded
    • select the letter that represents your flash drive
    • select at least 1GB of persistent memory (so that you can save things)
      • if your flash drive is larger than 2GB you can select more, but leave 1GB available for Ubuntu
    • click ‘create’
  • restart your computer (or move the flash drive to a different computer)
  • at some point before your normal operating system shows up you should have the option to select a ‘boot menu’ (or something like that). If there isn’t a clearly labeled option or menu (which won’t be available for long, so move fast) then you can try ‘delete’ ‘F10’ or ‘F12.’ If none of those work consult your documentation or customer service representative. There most definitely is a way to tell your computer to boot from the flash drive in the USB port, so don’t give up.
  • When the Ubuntu menu shows up, select ‘boot from USB’.
  • get Ubuntu universe (not a program, this just tells Ubuntu to search a wider list of programs)
    • click ‘system’
    • click ‘administration’
    • click ‘software sources’
    • check the box next to ‘universe’
  • get python and java
    • click ‘system’
    • click ‘administration’
    • click ‘synaptic package manager’
    • click ‘reload’ in the upper right of the new window
    • in the search bar enter the package names and check the box next to them when they show up
      • “python” “python-tk” “python-psyco” “openjdk-6-jdk”
    • click ‘apply’
    • 10.04 seems to have python 2.6.5 by default
    • or, from the terminal (doing it this way didn’t work correctly for me)
      • sudo apt-get install python python-tk python-psyco
      • sudo apt-get install openjdk-6-jdk
  • get arduino
    • after the download, move the file from the download folder to the desktop
    • right-click on the folder and select ‘extract here’
    • back in synaptic package manager
    • search for “avr-gcc” and “avr-libc”, mark for installation
    • or, from the terminal
      • sudo apt-get install gcc-avr avr-libc
  • get Teacup firmware
    • download the *tar.gz file (It’s actually a folder with a lot of compressed stuff inside it, not a single file)
    • move it from the download folder to the desktop
    • extract it to the desktop
    • rename the new folder “Teacup_Firmware”
    • open that folder, copy the “config.ramps.h” file and past a new one
    • rename that new file “config.h”
    • load Teacup firmware on to RAMPS
      • open the arduino folder
      • run the file named “arduino”
      • select ‘run in terminal’
      • select ‘file’ then ‘open’
      • click the ‘-‘ button in the upper right and navigate to the desktop directory
      • double-click the ‘Teacup_Firmware’ folder
      • double-click the *.pde file
      • click ‘verify’
        • you should get an error
        • open the Teacup_Firmware folder
        • find the file called ‘makefile’ and open it
        • scroll down to the ‘change these to suit your hardware’ section
        • uncomment the mega2560 line and comment out all the others (assuming you’re using the 2560 and not the 1280). It seems like some of the files use “/” to denote comments (stuff the program ignores) and others use “#” for the same thing. It should be obvious because all the instructions will be surrounded by whatever the symbol for comments are.
      • back in the arduino window
      • click ‘tools’ ‘board’ then select the mega 2560
      • click ‘verify’ and it should compile properly
      • click ‘upload’. Not only will the Arduino IDE tell you whether or not the upload worked, you should be able to watch the LED on the RAMPS board blink an awful lot. That’s a good thing.
        • it might prompt you to try the port ttyACM0 instead of COM1, click ‘ok’
  • get replicatorG
  • connect to the 3d printer
    • open the replicatorG folder
    • run the file called ‘replicatorg’ select ‘run in terminal’
    • wait for it to finish updating itself
    • click ‘machine’ ‘driver’ and select ‘teacup’
    • click ‘machine’ ‘serial port’ and select the ‘ACM0’ port
    • click ‘connect’ and the orange bar should turn green
    • make sure the temperature is updating and jog the axes

At this point you should have a bot that is registering temperatures and responding to the control panel. That’s all for now. I’ll put together another set of instructions describing how to properly tune the bot.

Anyone who tries this out on a system other than Windows, or on electronics other than RAMPS, please let me know. I’m sure it will work with only minor tweaking.