Thursday, November 5, 2009
Where has the time gone?
Thanks for being patient.
Sunday, October 4, 2009
I could use a thousand words or.....
To make a 3DP I needed to not only automate the "reset" but also, precisely control the movement of 2 bins, switch a dc motor on an off, and be able to tell the printing computer to "wait" and not send the next page until the printer is ready. I could have built a dedicated circuit to do all this but as I stated earlier, My knowledge of electronics is limited and I don't have a clue how to program a PIC. I decided instead to go with a CNC setup. The inkjet still does all the actual printing then the CNC takes over and re setts the gantry, adjusts the powder bins,spreads the powder, and then tells the printing computer that it can send the next page. You can see in the diagram that PC 2 has replaced the pulse generator and a relay has replaced switch 2. Additionally, 2 more steppers and a 2 axis stepper driver have been added. Switch 4 gives feedback to the control program and signals the change from the print to the recharge cycle. Relay 2 breaks the connection on pin #11 of the inkjet's parallel port. this tells the PC that the printer is "busy" so it wont send another page until the printer is ready. Relay 3 is connected to the motor that runs the powder roller. The breakout board is a convenient place to make all the connections to the parallel cable and PC 2. Note that the parallel port of the PC doesn't output enough current to drive a relay directly so I used the outputs to switch transistors that supply 5v to the relays.
For the CNC control I use TurboCNC and a G-code program. The program is a step by step set of instructions which can be used to set the logic state (high/low) of the parallel port pins. Also, pins can be monitored and step pulses can be sent to the stepper drivers.
Hopefully this helps clarify what I've done. If I haven't answered your questions feel free to ask.
Wednesday, September 23, 2009
Time to get back to it.
Wednesday, September 9, 2009
“It cuts though a tin can then slices a tomato!”
The utility is easy to use and doesn’t require any additional programming skills. Simply open your stl file in the slicer, pick a printer, set the slice thickness, and hit print. You can scale and rotate the model as well as shift the print position to center it on the page. One thing to note is that the measurements are in metric. You need to convert your stl to millimeters if you want it to print at the size you are expecting. My other observation is that the mesh must be clean and watertight. From what I understand, that’s not unusual for 3D printing. It’s probably also the reason the other software was so expensive. Unfortunately, my meshes are typically neither clean nor watertight (I really need to learn better 3D modeling skills).
I am modeling in Silo and using MeshLab to check and repair my meshes. Some are so hopelessly messed up that I’ll have to go back and start over. (There is also a slice feature in MeshLab but it outputs svg outlines and I need silhouettes.) MeshLab is open source and can be found at Sourceforge (http://sourceforge.net/projects/meshlab/). Silo is available from Nevercenter (http://www.nevercenter.com/about/) for a modest $99 ($159 for the pro version). They have a 30 day trial if you want to check it out and a very friendly and helpful users community. I'm still very much a Noob with Silo but I found it to be much more intuitive than Blender and WAY less expensive than Rhino, Lightwave, or any of the CAD packages (Hell, even Google Sketch Up is like $495 if you want to be able to output anything other than their own format). Again, if this wasn't a hobby (and I wasn't incorrigibly cheap), expese wouldn't be such a big issue.
Anyway, now I need to make my repairs and whip up some test files.
Monday, September 7, 2009
Lather, Rinse, Repeat
Oh Noooo!!!!! Somewhere around layer 170 one of the belts came loose! I'm going to have to come up with a more secure clamp. Once I get the belts fixed I'll be ready to try again. For now I'm trying to use up the ink in a new cartridge. I tried to refill an old one with the water/vodka mix but it was hopelessly clogged. I figure I'll have better luck with a new one. For now I'll keep working on getting the powder layer as smooth as possible. I also need to install a limit switch on the supply bin so it stops when it reaches the top.
Thursday, September 3, 2009
Some Assembly Required
Welcome to The Pit of Despair!
“Control, This is Max.”
- Taking control of the belt drive stepper (from now on the X axis)
- Telling the computer (my laptop) that the printer is busy
- Telling the printer a new piece of paper has been fed
- Starting the powder roller motor
- Raising the supply bin
- Lowering the build bin
- Moving the roller across the bins (to spread the powder)
- Stopping the powder roller motor
- Giving the printer back control of the X axis
- Telling the computer (my laptop) that the printer is ready for the next page
- Then it needs to wait while the printer does its thing and repeat at the appropriate time, as many times as necessary.
- I use one of the outputs to switch the step input to the X axis from the encoder to the computer. This puts the computer in control of the X axis. I used some switching transistors but probably could have used a simple SPDT relay.
- Another of the outputs is used to activate a relay that breaks the circuit on pin #11 of the parallel port of the inkjet printer. (I don’t know how this is done on a USB connection) This tells the printing computer (my laptop) that the printer is busy so it won’t try to print.
- I had used yet another output to supply power to an opto-interrupter that I placed over top of the paper sensor on the printer. The idea was that by turning the sensor on and off, I could simulate a paper present/not present state. It worked, for a while, but stopped when the sensor apparently burned out. Now I have a “flag” on a small rod that the printer literally backs into as it reaches the end of the page, telling it that the paper is out. As the axis moves forward again it pulls away from the flag and thinks the next page has been loaded.
- I use the “spindle on” output to trip a relay and power the powder roller.
- The bins are the Y and Z axis. I use incremental mode to move the floors of the bins by the thickness of the slices. The supply bin has to move twice the distance because it’s half the volume. I will install limit switches to stop the machine if one them goes to its limit.
- I use the command to “Home” the X axis. I have an optical sensor at the starting position. The home command moves the stepper in the direction and speed specified until the sensor is tripped then backs off until it is not. This gives very accurate placement of the axis. While it is moving, the roller is pushing a new layer of powder across the build chamber.
- Next the powder roller is stopped.
- The relay for the X axis step signal is switched back to the encoder (giving the printer control of the stepper).
- The relay breaking connection on pin#11 is switched off so the laptop thinks the printer is ready for the next page and starts printing again.
- Lastly, while the printer is printing, the software waits for a “handshake”. There is an input in TurboCNC that can be configured for a PLC handshake. One of the commands allows the software to pause and wait for the input to change state (high or low). I have a trip switch at the back of the X axis that the printer activates when it reaches the back of the supply bin. When this switch is tripped the software goes back to step 1
There are also subroutines to prep the printer/bins for the first page and to input the number and thickness of layers. I also have a countdown displayed so I know how many layers are left.
Tuesday, September 1, 2009
“I like to move it, move it”
Stepper motors require a driver. There are two input signals which tell the driver what to do. The first is a step pulse. With each pulse the motor advances (turns) one step. The second is the direction signal. This tells the driver which direction the motor is to turn. The signals are 5v logic and can come from any source (a push button, 555 timer, PC, whatever). A PC running software (like TurboCNC) can be used to turn the stepper an exact number of steps, at the specified speed, in the direction of your choice. I'll use this later to reset the printer and control my bins.
NEXT UP, Resetting the printer to print more than one page.
Linear motion or, “How I got the shaft”
Friday, August 28, 2009
How is this going to work?
Let me start by listing my liabilities;
- I don't have the first clue how to program a pic.
- Python might as well be a really big snake.
- Scripting is something i do to make my handwriting look nice on Christmas cards.
- Everything I know about electronics I learned from the Radio Shack " Getting Started in Electronics" book.
OK , now that that's out of the way, this is the plan.
- I will use software obtained elsewhere to "slice" my .stl file into images that will be sent from my laptop to the printer. ( more on this later)
- I will use the inkjet's firmware to handle the printing and the motion of the gantry (formerly the paper feed, now the x axis) during the printing phase
- Another PC (a worthless old PIII running TurboCNC in DOS) will control all other actions via g-code, steppers, optical sensors, switches, and a tanlge of wires. (don't worry I'll have more details when the time is right)
That's the basic idea anyway, The best part is that I didn't need to learn a whole new skill set. I was already familiar with TurboCNC, available here http://www.dakeng.com/turbo.html , and G code is no more difficult than old school BASIC (I think I just gave away my age).
One important note about TurboCNC. It allows the use of a PLC handshake (both input and output) that is vital. I didn't see the same command listed among the codes in Mach3. Be sure that whatever program you chose has the ability to pause and wait for a handshake. The importance of this will become clear when I explain the control sequence later. Oh yea, It also runs in DOS so you can use that old dusty computer you never got around to throwing away, and best of all It's Shareware.
The powder spreader
Thursday, August 27, 2009
The donor printer
Getting started
Here is a basic list of what is needed:
- an old inkjet (my lexmark 5700)
- some linear slides (the higher quality the better, but you can start with drawer slides)
- 3 stepper motors (make sure they are strong enough for the job)
- 3 axis driver board (Xylotex, Gecco, Stepmaster, or similar)
- a power supply of the appropriate amperage
- an assortment of switches, optical-interrupters, relays, wire...
- some timing belts, pulleys, lead scews and nuts
- a variety of construction supplies (lumber, corner braces, screws, epoxy, wood glue, aluminum angle...)
- an old pc (I'm sure you have an old Pentium II or III collecting dust next to that old inkjet)
- software to make it all work
I'm sure I left a bunch of stuff out but I'll go into more detail with each step.
There are, as they say, "Many ways to skin a cat" (apologies to cat lovers). So my solutions are just one of many possible. Please feel free to improve on my humble tinkering.
Hello!
This past Spring I attended the Wonderfest model and toy show here in Louisville. (Awesome show if you're into model building/ toy collecting) Anyway, one of the seminars was dedicated to rapid prototyping. After about 10 minutes I was like "This is so cool! I must have it!". Unfortunately I didn't have $15 G's burning a hole in my pocket. What I did have however was a basic mechanical and electrical aptitude and a new obsession. Oh yes... It will be mine!!!(insert evil scientist laugh here)
A few hours research on the web convinced me that I not only could do it but I already had much of what I needed for the project . I'm already well on the way to having a working 3D printer but I'll start at the beginning and chronicle my successes (and failures) and hopefully inspire others along the way.
If you are interested in building a 3D printer or just curious, be sure to check http://tech.groups.yahoo.com/group/diy_3d_printing_and_fabrication/
I also want to thank A. Fogassa for his help and inspiration. Check out his blog at http://homemade3dprinter.blogspot.com/