Ever since I got the Frostruder working on air, I haven’t been able to stop thinking about the possibilities of air-powered plastic extrusion. Today, I was able to put together a test rig and get some preliminary impressions. The verdict is that yes, air power seems to be a viable path forward, but there are definitely some hurdles to overcome.
My test rig was really ghetto, mostly because I didn’t have the right pipe fittings to make things easy. I managed to cobble together a monstrosity that did indeed hold pressure and work. The basic setup was: quick connect -> compression fitting -> PTFE tube -> compression fitting -> nozzle. I used some stainless steel nozzles that I got from McMaster. I used these because they have 1/8″ NPT connections on them. I have no idea what the nozzle profile looks like, and I had to modify them to get better extrusion. More on that later.
I used a standard extruder setup: nichrome wire + a thermistor + kapton tape. Since the hot end now had lots more metal in it (a bunch of pipe fittings connected to the nozzle) it took quite a while to heat up (2-3 minutes) but it did indeed get up to 220C. The entire assembly got really hot to the touch, so of course i ended up with lots of tiny burns. The PTFE tubing held up great in the compression fitting. We’ll need to do a long-term test on that to see just how well it actually holds up at temperature though.
As for the nozzle, I had to modify it to work. It comes with a wicked looking 2-inch blunt needle tip. I cut it down to ~2mm with a dremel. I tried to extrude with this and it just barely went. I got the dremel out and cut it flush. It extruded better, but still not so good. I started hacking into the nozzle body and cut away a good chunk of it to shorten the nozzle orifice length. That made a big difference the shorter I made it. If this proves to be a viable path, we’ll get custom nozzles machined with a short orifice distance for the best extrusion speed.
The extrusion itself was relatively slow. I didn’t measure it, but it looked like 10-15mm/sec @ 120PSI w/ 0.8mm diameter. Unfortunately this is much slower than the current MK4 which extrudes at ~26mm @ 0.5mm diameter. I’m going to try and tap a pipe plug to M6 and see how it compares when using the exact same nozzle as on the standard designs. That will be some excellent data. It definitely seems like we’re going to need to use much higher pressures if we’re going to extrude plastic with pressurized air/gas.
I started researching various options for higher pressure sources and came across a very interesting possibility: compressed CO2 cylinders. These are used all over the place, from paintball to welding to beer pouring systems. CO2 itself is really cheap and ubiquitous. C02 tanks also put out a steady 800PSI at room temperature! That is definitely going to be more than enough for our uses, and we’ll need to put a regulator on it to get the proper temperature out of the tank. The nice thing about CO2 is that it would be silent as well, compared to an air compressor which is typically very loud.
Another interesting challenge is delivering the feedstock. The air pressure does not just automatically push the plastic out the nozzle. Rather, it tunnels through the plastic and when the air pressure reaches the nozzle, it blows the plastic out and then jets air out the nozzle tip. If you push on the plastic to fill that gap, it will continue extruding and will extrude nicely for a couple minutes until you add more plastic to the mix. I was using filament in my setup and was pressurizing the entire PTFE tube that had the filament in it. This also meant that I had to de-pressurize and push the filament down in order to plug/fill the tunnel that formed. With air powered extrusion, we’d need to find a way to either feed filament into a pressurized system (some sort of o-ring?) or find a way to load pellets in at regular intervals. Perhaps a hopper with a servo-operated valve that would let the chunks of plastic enter the melt chamber?
A few of the hurdles / things to be researched:
* what pressures give us useful extrusion speeds (150, 200, 250?)
* can we find solenoid valves that handle those pressures and aren’t unobtainium?
* how much CO2 does a print need / how often would you need to fill a 1LB tank? (volume usage of a print = volume extruded + pressurized chamber size * extruder starts
* method for refilling plastic for printing (filament or pellets)
* can we use an o-ring to seal off the PTFE tube and thus be able to feed in filament continuously?
* can we create a hopper system that can sporadically fill the melt chamber with plastic pellets?
* can we do this safely?
The joy of R&D is that moment when everything comes together and there’s a shiny bit of goodness in front of you, gleaming with potential. This is not one of those stories. One of my research goals is to ‘close the loop’ on a few of the MakerBot subsystems. This is tech-speak for adding feedback systems so that you can know if your motors (or whatever) are doing what you tell them to do. In particular, I want to close the loop on the XYZ motors so that we know the exact position of the bot at all times.
My first crack at this is based on a cool chip by Austria Microsystems called the AS5304/AS5306. These tiny little chips are magnetic linear encoders (measures movement on a line). I’ve used the Austria Microsystems chips before and they’re really nice. In particular our magnetic rotary encoder board (measures rotation) uses the AS5040. The linear encoder chip has some really nice specs: resolution down to 15microns (0.015mm or about 1600DPI) As you can see, this chip would be a really nice addition to our MakerBot arsenal. What that means is that you put down a strip of adhesive backed magnet and then run this chip over it. It will tell you your exact position over the strip down to 15 microns. Hawt.
So, I modified the rotary encoder design for this new chip, including creating a new part in Eagle. I looked over the datasheet and everything looked good. I placed the components, then slept on it. I routed it, then slept on it again. I saw a few flaws and re-placed and re-routed it and then pronounced it ‘good’. I sent it off to the fab and moved onto the next board. Well, unfortunately I made some mistakes. First, the AS5040 chip which I copied for the footprint is wider than this chip, even though they have the same pin spacing. CRAP! The pads dont line up. The chip definitely still shows great promise, so I’m going to fix this mistake and send it off to the fab soon.
Moral of the story: always print your design and test the footprints against the real chip. I usually do this, but I was in Portugal at the time and wanted to have a bunch of goodies when I came back. Guess I learned my lesson.
Oh, and if you’re interested in this design… we always do our dev out in the open and this one is located in subversion.
We’ve released an updated version of skeinforge. Nothing major has changed with the script itself, but we have updated configuration settings for all bots from Batch 5+. Actually the new settings apply to anyone with a MK4 plastruder and/or the new nozzles from Najet.
If you’ve used skeinforge before, you need to move/delete your old preferences directory before the new ones will take effect. This is something we’d like to change, but for now thats just the way it is.
Under linux/mac you can find the folder in your user directory at: ~/.skeinforge
Under windows, you can find the folder in your user directory at: C:/Documents and Settings/user/.skeinforge (or something like that)
If you mess up or want to use the old settings, replace the defaults directory in skeinforge with the prefs/foo directory of your choice.
These past two weeks, I’ve been honored to run an intensive MakerBot workshop in lovely Lisbon, Portugal. The goal was simple: build two MakerBots, and print print print print print. We achieved goal #1 over the course of two evenings. Grand total of about 8 hours for 10 people to build 2 makerbots. It was really awesome.
Of course that left us with 12 days in which to design, print, and learn all there is to learn about how to do 3D printing on a MakerBot. Many wonderful things were designed, printed, and shared with the world. In no particular order, I’d like to present some of the interesting results of the workshop
Radiohead’s Thom York
This one was done by Tiago Serra and turned out great. He also managed to get reblogged on a bunch of other sites too. Click the image to view the model on Thingiverse.
Experience
This piece, entitled ‘Experience’ by Sónia Moreira was a great bit of art and very interesting to hold in your hands. I believe this was her first time using 3D modeling tools and was made using Wings3D and Blender. Click the image to view the model on Thingiverse.
Servo Suspension System
This design was very cool and very practical. Created by Guilherme Martins, it is a servo mount with integrated suspension system intended for use in a robot. Very cool! Click the image to view the model on Thingiverse.
PS3 Eye Support
Another really nice, really practical item was this custom support for a camera. It was designed by Sergio Ferreira for use in an art installation involving ants (also really cool!) Click the image to view the model on Thingiverse.
Pink Panther Woman
Last, but not least, we have this provocative model by Pedro Januário who is a very talented 3D modeler. He did many interesting models, but this was by far the most impressive. While printing this piece, he shattered many records, most notably the Longest Print, clocking in at 4+ hours. Click the image to view the model on Thingiverse.
Of course there were many, many other things designed and printed during the course of the workshop, and these are just a sample of the cool stuff that was done. Congratulations to all the participants and keep on rocking the 3D world.
One of our goals when we started MakerBot and designed the CupCake CNC was to automate one of the most tedious things of all time: frosting cupcakes. This incredibly difficult task has plagued mankind for centuries, but at long last we have found a reliable way to automate the process.
Our original design for a frosting extruder followed in the footsteps of Fab@Home’s paste extruder. They have a fairly elegant solution that uses linear actuators. Unfortunately, the linear actuators themselves cost more than our target price for the entire kit, so we attempted to come up with an emulated design that uses standard motors, lasercut gears, and some threaded rod to create a motorized plunger.
Well, this worked up until a point, but it was a pretty error prone and bulky solution. The gears were difficult to attach. The threaded rod based plunger required a design at least 2x the height of our desired syringe (60cc) and basically was heavy and didn’t work well. It was certainly an interesting design challenge for Bre, Will, and I that saw about 7-8 iterations and a failed appearance on TV, but ultimately it was fruitless. There’s a reason we never released the MK1 for sale.
Not only that, but the motorized piston based solution is an inherently flawed approach: The extrusion of a material is based primarily on the pressure, viscosity, and nozzle diameter. There’s not much you can do about viscosity and nozzle diameter, so we’re mucking with pressure. In the motorized piston approach, the pressure builds up gradually as you push the plunger down, and releases as the material either leaves the syringe or you back off the plunger. The result is that you either have extremely slow start/stop times or you have to deal with massive ooze problems.
Which brings us to the MK2. I was musing over the design failures one day when I had the idea that instead of trying to create the pressure in the syringe mechanically using a plunger, what if we directly applied pressure using air. I reasoned that we could use a commonly available air compressor and electrically controlled solenoid valves to push frosting out of a syringe tip. I had this idea for about 6 months, but it had to sit on the backburner for a while until I had a chance to work on it.
My first experiment was with some thick, chocolate frosting that you can find in nearly any grocery store. I simply wanted to see if it was possible to use air pressure to extrude frosting, so I wired up a solenoid to a switch and used that solenoid to turn the air pressure on and off to the syringe. I was using a 21GA (0.53mm) needle and a standard 60cc syringe. I hooked it up to the air pressure and opened the valve. Nothing happened right away, but I gradually turned the pressure up until about 50-60 PSI I started getting a frosting extrusion. I kept turning up the pressure to about 80 PSI where I got a really nice, very fast frosting extrusion that was about 0.5mm wide. Success!!!
Well, it wasn’t a total success: when I closed the valve, the syringe was still pressurized and continued to extrude. Obviously that is a problem, so I went back to the drawing board. I came up with the idea of adding a 2nd valve that would act as a relief valve and release the built-up pressure to the outside world. I grabbed a second valve and went back to the garage to experiment. The result was phenomenal! I was able to start and stop the extrusion at will, with zero oozing problems. This was excellent news. I soon had an Extruder controller wired up to the solenoids and a tester gcode script that would cycle the valves every 10 seconds. It was amazing to see a stream of frosting coming out and stopping every 10 seconds. I ran to get Bre and Adam to celebrate and we danced a frosting dance.
So: fast forward a few weeks and we’re gearing up for the Yahoo Hack Day in Times Square. We really didn’t have a solid game plan for what to do, but we knew we wanted to have fun and stay up all night hacking. I was really into the new frostruder design, so I brought it with us along with a portable air tank and a bike pump. We spent all night hacking on the frostruder and trying a variety of edible materials (frosting, peanut butter, and jelly). We ended up winning the Best Hardware Hack category with our New York Toast entry. It was a fun, fun hacking adventure.
One of the nice things about being an open source hardware based company is that we don’t need to keep our R&D efforts under wraps. Infact, we do all of our R&D out in the open. Our public facing subversion repository (http://svn.makerbot.com) is where you can find the latest developments that we’re working on. As all of our hardware designs are based on digital files, its easy for us to post them for all to see.
The reason behind this post is two-fold. First, I’d like to start blogging regularly about new developments. Things like new prototypes, new ideas, and stuff like that. Some of these things will probably be failures and would otherwise never see the light of day. Others may work but not be practical or useful. Some lucky ones will work great and fit with what we want to do and get turned into products. All of this information is useful and valuable the community and should be shared.
The second reason is that I’d like to give a bit of a ‘behind the scenes’ look into MakerBot, how we operate, what we’re thinking about, and perhaps show ways in which the community can participate in the development of our shared technology. If it shows that we’re not some faceless MegaCorp of just 5 people, well thats a nice bonus too. To start, I’d like to give a tour of the various resources where development is taking place:
MakerBot Subversion
URL: http://svn.makerbot.com
This is the main repository where most of our development takes place. This is where our electronics, cupcake cnc, plastruder, frostruder, and many other things are stored. Each of us also has our own personal directory where we do more experimental work. Here’s a few useful directories:
http://svn.makerbot.com/trunk/ – this is where the main development happens. we try to keep it stable, but dont assume things from this folder work. this is where the latest and greatest stuff is though. http://svn.makerbot.com/tags/ – this is where we ‘tag’ the releases once they’re ready for public consumption. you can get it from here or our google code project. http://svn.makerbot.com/users/ – these are our own personal directories where Bre, Adam, and I do our hacking. We usually put stuff in here that is highly experimental that may or may not work. Sort of a playground for hacking, if you will.
We are trying out Github as our repository for the Firmware and ReplicatorG. Github and git in general are really great for distributed development. Since people are more likely to collaborate with us on the code side of things, we wanted to make it as easy as possible for them. If this experiment works out, we may switch over our entire repository to Git. Who knows?
Community
Of course all the sourcecode in the world is meaningless unless you have a community. Most of the Makerbot community resides on the MakerBot operators group. There’s also a growing dev list for ReplicatorG. If you’re interested in helping out… just dig into the source and see what you think. Hit us up in the makerbot operators group with any progress you make!
A few weeks ago, we attended the awesome Yahoo Open Hack Day in Times Square. We brought along a couple makerbots, some prototype extruders, and some half formed ideas. Over the course of the 24 hour hackathon our ideas solidified. We had a prototype frostruder, various things to frost with, and we set forth to print ‘All the news thats fit to eat.’ Along the way we bumped into Richard Morris, a producer for CNN that shot some video of the bot. Somehow we even made it into the final cut. Yahoo hack day was a really great experience and we had a blast. Yahoooooo!
The advent of mobile computing has brought us many things: the sum of human knowledge at your fingertips wherever you are, instant map capabilities, and the ability to wax poetic on the go 140 characters at a time. Well, now you can carry a universe of things in your pocket. Provided your pocket has an iPhone, of course.
The iPhone site is the product of about 4 days of feverish hacking and refactoring of the existing Thingiverse code. It’s pretty much read only, but if you need to do any heavy lifting you can easily switch back to the standard HTML view. The idea is to create a site that is interesting and helpful if you want to kill some time and see whats going on in the ‘verse.
Of course, there is an ulterior motive: I wanted to be able to access the inventory system on my iphone. I’ll admit that I’m a selfish bastard, but also a thorough one. When I launched the parts and inventory systems I was really happy. Especially when I realized that I could skip the whole barcode reader step and just put QR codes with the part url on all of our parts. (Notice we auto-generate QR codes for all parts and things on thingiverse…)
Well, unfortunately I soon realized that the computer-monitor optimized Thingiverse did not make managing the inventory via iPhone very easy. So, instead of simply converting that single page into one that works well with the iPhone, I converted the whole site! Now that its done… its really awesome! All of our boxes at MakerBot are covered in QR code stickers. I just scan one of those stickers with QuickMark and it takes me to the Thingiverse page for that part. From there I can add or subtract from our inventory nice and easy. No more lugging a heavy box to the barcode scanner station just so I can add or subtract one bolt. I can just grab a bolt, scan the code and go!
The store was down for a few hours today as we made some changes to it. Some of these you’ll notice, some you won’t. They will make life easier for everyone though. Here’s a quick list of the new changes:
* Its now on its own server which is much faster! (Previously it shared a server with the makerbot site, thingiverse, blogs, and a few other random sites)
* We now have SSL and all your account information is now encrypted and secured.
* We now accept credit cards directly! No more using Paypal. Good for those of you that work at universities or in large corps and want to buy a MakerBot
* Magento now uses memcached on the backend for caching sessions and such. Should result in a speed boost.
* We found and installed a new order status module which will result in more informative order statuses (eg: ‘On Hold’ is now ‘In Production’.)
* We found a module that will serve as a start for UPS WorldShip integration which means we’ll be switching to UPS soon.
PS. We use Magento, which is awesome, open source ecommerce software.
PPS. DNS may still be propogating, so you may still see a ’site is down’ message. It will be back ASAP.
A few weeks ago, we picked up some old Zebra LP 2844 thermal printers in hopes of using them to print barcodes, packing slips, stickers, and all sorts of other fun stuff. Well, since most of us around here use Ubuntu, we figured it would be awesome to be able to use it with Linux.
Okay, sounds easy… well, how do you do it? First off, the printer we have only has serial and parallel ports. Crap. Undaunted, I order a USB to Serial cable that uses the good old FTDI chip. I manage to add it as a printer in Ubuntu, and go to print a test page. Ugh. Super slow. Its also pretty buggy and half the prints die. Fail. Twitter to the rescue, and @adafruit recommends a USB to Parallel adaptor.
Fast forward two days, and the Sabrent USB to Parallel cable has arrived. Things got busy, but tonight I was able to get out the cable and give it a shot. Parallel may be old, but the cable looks nice and plugging things in are easy. I remember order of operations being important from the ‘old days’, so I tried this combination and it worked. Remember, this is on a standard Ubuntu 9.04 install, YMMV.
1. Plug Parallel end into Zebra
2. Turn on Zebra
3. Plug USB into computer
Okay, now I have it plugged in. A quick ‘dmesg’ in the terminal confirms that it found SOMETHING that looks like a printer. Rock.
[996085.966096] usblp2: USB Bidirectional printer dev 4 if 0 alt 0 proto 2 vid 0×1A86 pid 0×7584
Alright, and now the tricky part: How do I get the computer to talk to it? Actually it was ridiculously easy!
1. Go to System -> Administration -> Printers
2. That brings up the printer management dialog, where you click the New button.
3. It doesn’t find the printer automatically, so go with the Unknown device option and click Forward.
4. It searched for a bit and brought up the Choose Driver screen. Scroll all the way down to Zebra and click Forward.
5. The Zebra LP 2844 uses the EPL2 language, so select EPL2 Label Printer model and the recommended driver.
6. Name it. I called mine ZEBRAR.
7. Print a test page. You know you want to.
Bingo! If everything went okay, you now have a working label printer. Now, what do you do with it?
Well, the easiest way I could figure out how to make things to print on it was to use the GIMP. Here are a few tips:
* The printer is 203dpi. When you create your images, make sure they use this DPI setting (its under advanced settings) Then make the size of the document the size of your stickers in inches. That will make things work great for you.
* Make sure you adjust the page setup! Go to File -> Page Setup. Make sure you select Format for: Zebra as well as your paper (label) size. This will ensure that your prints are exactly what you see.
* For some reason, from GIMP the print copies stuff doesn’t work. Bizarre for sure, but I found a workaround: Use the Print to File option to print a PDF and set the desired number of copies. This will create a PDF with a page for every copy you want. When you print that, it will print out the number of copies you want. Make sure you set the page properties in your PDF viewer before printing!!!
Anyway, thats how you get a Zebra LP 2844 thermal label printer working under linux. Now to get the right kind of stickers and print out hundreds of MakerBot QR code stickers.