Difference between revisions of "Project BrundleFab"

From www.evillabs.net
Jump to: navigation, search
(Printhead Controller)
(Printhead Controller)
Line 75: Line 75:
 
the shift registers to the matrix printhead.
 
the shift registers to the matrix printhead.
  
[[File:HP CB8605-60085 Printer Carriage Pinout.jpg|500px|HP CB8605-60085 Printer Carriage Pinout]]
+
More details on my [[Project HP F4480 Pen Controller]] page.
 
+
The nominal voltages recorded on the flex cable are in the following table, along with the disconnect results from my breakout cable:
+
 
+
[[File:HP F4480 Breakout Cable.jpg|500px|HP F4480 Breakout Cable]]
+
 
+
{| class="wikitable"
+
|-
+
! Pin !! Voltages !! Dir !! Name !! Comment
+
|-
+
|-
+
| 1 || 0.0v || Out || ENC_A || Encoder A Output
+
|-
+
| 2 || 0.0v || Out || ENC_B || Encoder B Output
+
|-
+
| 3 || 0.0v || Gnd || GND || Ground
+
|-
+
| 4 || 1.6v || In ||  || CYM Ink Control
+
|-
+
| 5 || 0.0v / 0.9v / 1.1v || In ||    || CYM Ink Control
+
|-
+
| 6 || 0.0v || Gnd || GND || Ground
+
|-
+
| 7 || 0.0v / 1.5v || ? ||    || Disconnect - No effect
+
|-
+
| 8 || 0.0v / 1.5v || ? ||    || Disconnect - Immediate stop of printing
+
|-
+
| 9 || 0.0v || Gnd  || GND || Ground
+
|-
+
| 10 || 1.6v || In || #BK_DATA || Black Ink Control (Looks like data, I guess)
+
|-
+
| 11 || 1.1v / 0.9v / 0.0v || #BK_EN || ||  Black Ink Control (110us off, 1.6us on)
+
|-
+
| 12 || 0.0v || Ground || GND || Ground
+
|-
+
| 13 || LVCMOS3.3 || Out || INK || Ink eject (1.5us pulse)
+
|-
+
| 14 || LVCMOS3.3 || In/Out || IO_DATA || Disconnect - immediate stop of print, E - Ink
+
|-
+
| 15 || 3.3v || Vcc || VCC || 3.3v for logic
+
|-
+
| 16 || LVCMOS3.3 || Out || IO_CLK || Disconnect - immediate stop of print, no error
+
|-
+
| 17 || 16v || In  || VINK || Voltage for ink jet
+
|-
+
| 18 || 16v || In  || VINK || Voltage for ink jets
+
|-
+
| 19 || 16v || In  || VINK || Voltage for ink jets
+
|-
+
| 20 || 16v || In  || VINK || Voltage for ink jets
+
|}
+
 
+
NOTE: IO_DATA appears to update for sampling on both positive and negative edges of IO_CLK, IO_CLK is 4Mhz, and nominally low when idle.
+
  
 
=== DC Motor/Encoder Interfaces ===
 
=== DC Motor/Encoder Interfaces ===

Revision as of 22:50, 29 October 2014

Introduction

'BrundleFab' is an attempt to build a 3D powder bed printer, using sugar as the working medium, and with output as a food quality edible.

The name comes from the 1986 movie 'The Fly': "Do you normally take coffee with your sugar?"

Sources

My sources are available on GitHub:

So far, they just include a vague OpenSCAD sketch of the powder bed, and some test code.

Electronics

Arduino

Seed Studio SD Card v3.1 Shield

Well, connecting to an Arduino Mega2560 doesn't just snap on and work. You need to route some pins:

MEGA Pin SD Shield Function
ICSP1 D12 MOSI
ICSP2 5v 5v
ICSP3 D13 SCK
ICSP4 D11 MISO
ICSP6 GND Gnd
D53 D10 SS

Use the arduino SD library, with a 'const int chipSelect=SS;' and you are good to go.

HP F4480

I am using a pile of trashed HP F4480 DeskJet printers as a source of motors, gears, and encoders.

Here are some information I have discovered about the internals of this printer:

Rotary optical encoder board

This board monitors the 1200 DPI optical encoder disk attached to the main paper handling roller in the printer.

It uses quadrature encoding, and can monitor both forward and reverse direction.

I am using the 'Encoder' library from the [1] Arduino library collection.

Pin 1 is the kerf on the CPU board connection

Pin Function
4 Output A
3 Vcc 3.3v
2 Output B
1 Gnd

Printhead Controller

The HP F4480 printhead carriage monitors a 1200 DPI optical encoder strip, which is the feedback to the carriage motor, and manages the shift registers to the matrix printhead.

More details on my Project HP F4480 Pen Controller page.

DC Motor/Encoder Interfaces

I scavenged the connectors from the HP printers and build some extension cabling for the X and Y axis controls.

BrundleFab-DC-Motor-Encoder-Connectors.jpg

Wire colorcode key:

Color Function
White/Orange Ground
Orange/Write 3.3v
White/Blue Encoder A
Blue/White Encoder B
White/Purple Motor -
Purple/White Motor +

DC Motors

All three DC motors (printhead, paper handling, and scanner carriage) are driven at 30v, PWM at 10% for nominal operation.

The printhead and paper handling motors are larger driving gear motors, the scanner carriage motor is a small motor driving a worm gear.


Adafruit Motor Shield v2 =

The Adafruit Motor Shield v2 appears to be inadequate for accurate PID control of DC motors - the I2C bus latency to the PWM controller is too high for my PID tuning skills.

That said, I am considering using steppers for my Z axis, and for that purpose it should work nicely.

Adafruit Motor Shield v1

However, the Adafruit Motor Shield v1 has the Arduino PWMs directly connected to the motor drivers - I have been able to get pretty accurate PID control of my DC motors with this shield.

Although it is no longer sold by Adafruit, the design has been duplicated by a number of 2rd party manufacturers, so it's still easy to come by.

Powderbed

Overall Design

From the front of the printer, the X axis is from left (negative X - the feed bin area) to right (positive X - the part bin area).

Past the part bin, there is a 'cleaning' chute area where excess powder will fall during the print cycle.

The conceptual design is for the powder roller to immediately follow the print head, and the print head never executes a negative X movement until the Z slice is complete.

The X axis is controlled by a DC motor + circular encoders from the paper feed of an HP4480 printer, which pull on braided (non-stretching) fishing line (weighted on both ends) attached to the X trolley.

The Y axis is controlled by a DC motor + linear encoder, mounted on the inkjet carriage of the HP4480 printer. As I have multiple HP4480s, I will use a mounting system that will allow me to easily interchange the inject carriage, so as to replace the Y axis movement in case of failure.

The Z-part and Z-feed axes will be constructed of 12VDC 1-ton electric scissor jacks - these should be able to handle any desired powder material. The positioning of the scissor jacks will use an optical encoder - rotary and linear are being considered.

Current Progress

Powder bed frame is 85% complete:

TODO:

  • Scissor jacks for Z-Part and Z-Feed axes
  • Optical encoders for Z-Part and Z-Feed
  • Support frame for the powder bed (basically, a table with holes cut out for the scissor jacks)
  • X trolley fishing line routing (wire nails, hooks, and weights)

Print Media

Granulated Sugar + Water

Process

  1. Lay down 10mm of granulated sugar
  2. Sift a layer of 1mm of granulated sugar
  3. Apply 1mm droplets of (colored) water to the granulated sugar via a needle bottle (unknown tip size)
  4. Go to 2. until part build volume is complete
  5. Lay down 10mm of granulated sugar
  6. Heat at 120C (250F) in oven for 1 hour
  7. Let cool
  8. Remove from build container, and remove excess sugar

Results

The resulting object was stiff, but easily crumbled. Water dispersion through the granulated sugar had an approx 5mm radius, and substantially filled in the interior of the part (wireframe cube).

BrundleFab Media Test Result - Granulated Sugar + Water.jpg

Analysis

  • Droplet size should be smaller
  • Either a finer granularity or pressure packing of the media should reduce the spot size of the print head
  • A food safe adhesive should be tried to increase bonding strength
    • In-powder adhesive (such as meringue powder) activated by water
    • In-suspension adhesive (such as egg whites)

Powdered Confectionery Sugar + Water

  1. Lay down 10mm of granulated sugar
  2. Sift a layer of 2mm of granulated sugar, and pack down to 1mm.
  3. Apply 1mm droplets of (colored) water to the powdered sugar via a needle bottle (unknown tip size)
  4. Go to 2. until part build volume is complete
  5. Lay down 10mm of granulated sugar
  6. Heat at 120C (250F) in oven for 1 hour
  7. Let cool
  8. Remove from build container, and remove excess sugar

Results

Sugar did not re-crystallize, I suspect the cornstarch at fault here.

Analysis

  • Powdered Confectionery Sugar is not suitable for printing, due to the cornstarch content.

Powdered Sugar/Meringue Powder + Alcohol/Water

  • Powder base is granulated sugar and meringue powder
  • Adhesive is alcohol and water

Procedure

  1. Lay down 10mm of powder
  2. Sift a layer of 2mm of powder, and pack down to 1mm.
  3. Apply 1mm droplets of (colored) adhesive to the powder via a needle bottle (unknown tip size)
  4. Go to 2. until part build volume is complete
  5. Lay down 10mm of granulated sugar
  6. Heat at 120C (250F) in oven for 1 hour
  7. Let cool
  8. Remove from build container, and remove excess sugar

Results

  • Sugar/Meringue powder is % by mass
  • Alcohol/Water is % by volume
Sugar Meringue Powder Water Alcohol Results
90% 10% 50% 50% Small droplet size (1mm), no capillary creep from the droplets; resulting object could be rinsed of excess powder

Analysis

  • Should be a sufficient working material, need to experiment with different ratios.