Project BrundleFab: Difference between revisions
No edit summary |
|||
(12 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
= HISTORICAL ARCHIVE = | |||
This is a historical archive of the early days of BrundleFab. | |||
The current project status is maintained at [http://reprap.org/wiki/BrundleFab http://reprap.org/wiki/BrundleFab]. | |||
= Introduction = | = Introduction = | ||
Line 4: | Line 10: | ||
The name comes from the 1986 movie 'The Fly': "Do you normally take coffee with your sugar?" | The name comes from the 1986 movie 'The Fly': "Do you normally take coffee with your sugar?" | ||
Obligatory hand-held YouTube video of the first print: | |||
[https://www.youtube.com/watch?v=zHy0NdR5VD0 https://www.youtube.com/watch?v=zHy0NdR5VD0] | |||
== Sources == | == Sources == | ||
Line 9: | Line 19: | ||
My sources are available on GitHub: | My sources are available on GitHub: | ||
* Powderbed design and test: [https://github.com/ezrec/BrundleFab https://github.com/ezrec/BrundleFab] | * Powderbed design and test: [https://github.com/ezrec/BrundleFab-hardware https://github.com/ezrec/BrundleFab-hardware] | ||
* | * GCode interpreter (ATMega2560) [https://github.com/ezrec/BrundleFab-firmware https://github.com/ezrec/BrundleFab-firmware] | ||
* Inkjet controller (InkShield) [https://github.com/ezrec/BrundleFab-printhead https://github.com/ezrec/BrundleFab-printhead] | |||
* Slicer toolchain scripts [https://github.com/ezrec/BrundleFab-software https://github.com/ezrec/BrundleFab-software] | |||
= Electronics = | |||
== Power == | |||
I'm using a SATA connector from a PC power supply. | |||
<gallery> | |||
File:BrundleFab-Power-SATA.jpg|SATA Power Connector | |||
</gallery> | |||
== Arduino == | == Arduino == | ||
=== | === AdaFruit 1.8" TFT Shield + Joystick === | ||
<gallery> | |||
File:BrundleFab-Logic-Stack.jpg|AdaFruit 1.8" TFT attached to the logic stack | |||
</gallery> | |||
=== Adafruit Motor Shield v2 === | |||
The [https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino 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. | |||
I using steppers for my X, Z, and E axes, and the DC Motor + Encoder for the Y (printhead) axis. | |||
! | === Adafruit Motor Shield v1 === | ||
|- | |||
However, the [https://learn.adafruit.com/adafruit-motor-shield 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. | |||
== Ink Heads == | |||
|- | |||
=== Canon BJC-4550 === | |||
The Canon BJC-4550 printhead, control assembly, and wipe/cap assembly (not pictured, but it'd be in the space on the far right) perfectly fit on my powerbed frame! | |||
<gallery> | |||
File:BrundleFab-Canon-BJC-4550-Prototype.jpg|Prototype fitting of the Canon BJC-4550 printhead and control electronic | |||
</gallery> | |||
Unfortunately, the BJC-4550 died a premature death during prototyping... | |||
=== Canon i9900 === | |||
I'm scavenging a Canon i9900 (8 ink heads!) for a future iteration, but for now I'll be using an InkShield. | |||
=== InkShield === | |||
I'm using Nicholas C Lewis' [http://nicholasclewis.com/projects/inkshield/|InkShield] device to control a HP C6602 cartidge for now - it was just wire up & go, and will allow me to test my axis control and firmware. | |||
After blowing up the MC34063A on the board, I made the following modifications, and it pulls less current and runs slightly warm - not burning hot: | |||
* U1 - MC34063EBN | |||
* R1 - 1 Ohm | |||
* C2 - 100pF | |||
<gallery> | |||
File:BrundleFab-InkShield-Demo.jpg|Running the InkShield directly from an Arduino | |||
</gallery> | |||
== HP F4480 == | === HP F4480 === | ||
I am using a pile of trashed HP F4480 DeskJet printers as a source of motors, gears, and encoders. | I am using a pile of trashed HP F4480 DeskJet printers as a source of motors, gears, and encoders. | ||
Line 47: | Line 91: | ||
Here are some information I have discovered about the internals of this printer: | Here are some information I have discovered about the internals of this printer: | ||
=== Rotary optical encoder board === | ==== Rotary optical encoder board ==== | ||
This board monitors the 1200 DPI optical encoder disk attached to the main paper handling roller in the printer. | This board monitors the 1200 DPI optical encoder disk attached to the main paper handling roller in the printer. | ||
Line 70: | Line 114: | ||
|} | |} | ||
=== Printhead Controller === | ==== 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 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. | the shift registers to the matrix printhead. | ||
[[ | More details on my [[Project HP F4480 Pen Controller]] page. | ||
==== DC Motor/Encoder Interfaces ==== | |||
=== DC Motor/Encoder Interfaces === | |||
I scavenged the connectors from the HP printers and build some extension cabling for the X and Y axis controls. | I scavenged the connectors from the HP printers and build some extension cabling for the X and Y axis controls. | ||
Line 151: | Line 145: | ||
|} | |} | ||
=== DC Motors === | ==== DC Motors ==== | ||
All three DC motors (printhead, paper handling, and scanner carriage) are driven at 30v, PWM at 10% for nominal operation. | 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. | The printhead and paper handling motors are larger driving gear motors, the scanner carriage motor is a small motor driving a worm gear. | ||
= Powderbed = | = Powderbed = | ||
Line 179: | Line 159: | ||
Past the part bin, there is a 'cleaning' chute area where excess powder will fall during the print cycle. | 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 | The conceptual design is for the powder wipe 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 + | The X axis is controlled by a geared DC motor + mouse wheel encoders, which pulls on a braided (non-stretching) fishing line attached to the Y axis 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 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 | The Z-part and E-feed axes will be driven by two NEMA17 steppers, driving a 40cm trapezoidal (Tr8x4) drive screw. See the Piston section for details. | ||
== Current Progress == | == Current Progress == | ||
Powder bed frame is | Powder bed frame is 100% complete: | ||
<gallery> | <gallery> | ||
Line 196: | Line 176: | ||
File:BrundleFab-Frame-80.jpg|Powderbed 80% complete | File:BrundleFab-Frame-80.jpg|Powderbed 80% complete | ||
File:BrundleFab-Frame-85.jpg|Powderbed 85% complete | File:BrundleFab-Frame-85.jpg|Powderbed 85% complete | ||
File:BrundleFab-Frame-Legs.jpg|Powderbed with legs | |||
File:BrundleFab-Frame-Assembled.jpg|All electronics | |||
</gallery> | </gallery> | ||
= Piston = | |||
Currently I only have NEMA 17 motors, so I have built a piston insert for half of the frame. The left side of the frame will be unused for this prototype, until I get larger stepper. | |||
The insert uses two NEMA 17 motors with integral 40cm Tr8x4 screws, 4 pieces of MDF, and some scrap sheet metal a motor mounts. The endstops, although in the same physical location, are configured differently for each axis. | |||
For the Z axis, which starts at the top of the piston chamber and moves down, the endstop is for Maximum Z. | |||
For the E axis, which starts at the bottom of the piston chamber and moves up, the endstop is for Minimum E. | |||
<gallery> | |||
File:BrundleFab-Piston-Insert.jpg|Piston insert, for the right half of the frame | |||
File:BrundleFab-Piston-Insertion.jpg|Inserting the piston insert into the right half of the frame | |||
</gallery> | |||
= Print Media = | = Print Media = |
Latest revision as of 04:03, 10 August 2015
HISTORICAL ARCHIVE
This is a historical archive of the early days of BrundleFab.
The current project status is maintained at http://reprap.org/wiki/BrundleFab.
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?"
Obligatory hand-held YouTube video of the first print:
https://www.youtube.com/watch?v=zHy0NdR5VD0
Sources
My sources are available on GitHub:
- Powderbed design and test: https://github.com/ezrec/BrundleFab-hardware
- GCode interpreter (ATMega2560) https://github.com/ezrec/BrundleFab-firmware
- Inkjet controller (InkShield) https://github.com/ezrec/BrundleFab-printhead
- Slicer toolchain scripts https://github.com/ezrec/BrundleFab-software
Electronics
Power
I'm using a SATA connector from a PC power supply.
-
SATA Power Connector
Arduino
AdaFruit 1.8" TFT Shield + Joystick
-
AdaFruit 1.8" TFT attached to the logic stack
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.
I using steppers for my X, Z, and E axes, and the DC Motor + Encoder for the Y (printhead) axis.
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.
Ink Heads
Canon BJC-4550
The Canon BJC-4550 printhead, control assembly, and wipe/cap assembly (not pictured, but it'd be in the space on the far right) perfectly fit on my powerbed frame!
-
Prototype fitting of the Canon BJC-4550 printhead and control electronic
Unfortunately, the BJC-4550 died a premature death during prototyping...
Canon i9900
I'm scavenging a Canon i9900 (8 ink heads!) for a future iteration, but for now I'll be using an InkShield.
InkShield
I'm using Nicholas C Lewis' [1] device to control a HP C6602 cartidge for now - it was just wire up & go, and will allow me to test my axis control and firmware.
After blowing up the MC34063A on the board, I made the following modifications, and it pulls less current and runs slightly warm - not burning hot:
- U1 - MC34063EBN
- R1 - 1 Ohm
- C2 - 100pF
-
Running the InkShield directly from an Arduino
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 [2] 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.
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.
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 wipe 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 geared DC motor + mouse wheel encoders, which pulls on a braided (non-stretching) fishing line attached to the Y axis 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 E-feed axes will be driven by two NEMA17 steppers, driving a 40cm trapezoidal (Tr8x4) drive screw. See the Piston section for details.
Current Progress
Powder bed frame is 100% complete:
-
Powderbed Interior
-
Powderbed waste chute and electronics area blueprint
-
Powderbed 80% complete
-
Powderbed 85% complete
-
Powderbed with legs
-
All electronics
Piston
Currently I only have NEMA 17 motors, so I have built a piston insert for half of the frame. The left side of the frame will be unused for this prototype, until I get larger stepper.
The insert uses two NEMA 17 motors with integral 40cm Tr8x4 screws, 4 pieces of MDF, and some scrap sheet metal a motor mounts. The endstops, although in the same physical location, are configured differently for each axis.
For the Z axis, which starts at the top of the piston chamber and moves down, the endstop is for Maximum Z.
For the E axis, which starts at the bottom of the piston chamber and moves up, the endstop is for Minimum E.
-
Piston insert, for the right half of the frame
-
Inserting the piston insert into the right half of the frame
Print Media
Granulated Sugar + Water
Process
- Lay down 10mm of granulated sugar
- Sift a layer of 1mm of granulated sugar
- Apply 1mm droplets of (colored) water to the granulated sugar via a needle bottle (unknown tip size)
- Go to 2. until part build volume is complete
- Lay down 10mm of granulated sugar
- Heat at 120C (250F) in oven for 1 hour
- Let cool
- 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).
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
- Lay down 10mm of granulated sugar
- Sift a layer of 2mm of granulated sugar, and pack down to 1mm.
- Apply 1mm droplets of (colored) water to the powdered sugar via a needle bottle (unknown tip size)
- Go to 2. until part build volume is complete
- Lay down 10mm of granulated sugar
- Heat at 120C (250F) in oven for 1 hour
- Let cool
- 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
- Lay down 10mm of powder
- Sift a layer of 2mm of powder, and pack down to 1mm.
- Apply 1mm droplets of (colored) adhesive to the powder via a needle bottle (unknown tip size)
- Go to 2. until part build volume is complete
- Lay down 10mm of granulated sugar
- Heat at 120C (250F) in oven for 1 hour
- Let cool
- 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.
-
90%/10%+50%/50% (dry)
-
90%/10%+50%/50% (wet)