Sunday, October 4, 2009

I could use a thousand words or.....

I was asked to describe how the various components interact. Instead of a lengthy (and confusing) description I offer these diagrams and a (hopefully) shorter description. The first step to building a 3DP is to modify the inkjet into a flatbed printer. To that end you need to have a way to move the entire printer over the paper instead of the paper under the printer. There are 2 problems with moving the printer body directly with the original paper feed motor. First, it probably isn't strong enough and second it will probably make unwanted movements as the printer tries to ready a new piece of paper. My solution was to place a homemade encoder on the paper feed motor that would supply "step" pulses to a second more powerful stepper motor. In this way I could easily interrupt the pulses and stop the gantry movement even if the paper feed motor was still moving. Another source of pulses can be used to return the gantry to the starting position. Switches 1 and 3 are "safety" limit switches to prevent over travel of the gantry. Switch 2 swaps the source of the pulses and changes the printer from "print" to "reset". Also, you will need some way to tell the printer when the "paper" is present and "out". Usually there is an optical sensor which you can block/unblock at the appropriate times. This setup works if you are printing only one page at a time and don't mind resetting it manually each page. Of course, you could design a circuit to automate the switching process and replace switch 2 with a relay.

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.


  1. Hi John,
    That was really helpful and easy to understand. As you said, a picture is better than a thousand words!
    Thank you very much!

  2. Hi

    thanks for your help.

    sorry my English is not well .

    I have just one question.

    I changed all ready HP 1120c to flat bed printer and I can print on the wood garment and ...

    just I need move back the printer to start position and print again(for now)

    I am not thinking a bout 3d printing and move bins now.I want go step by step .

    now what kind board I need (to move back to start position ?)

    thank you

    have nice day

  3. Rana, How you return to the start position has a lot to do with exactly how you are moving the printer (gantry). Does your printer (HP) use a stepper motor or a DC servo and encoder? Are you using the printer's origional motor to directly move the gantry or do you use the printer motor to indirectly "drive" annother motor. Depending on your set up, you will need a way to run the gantry drive motor in reverse until it reaches the "start "position. If you can give me some more information I may be able to make some suggestions.