-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
1/99
Windell H. Oskay &
Lenore M. Edman
Evil Mad Scientist Laboratorieswww.evilmadscientist.com
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
2/99
It would be fun to have a 3D printer...
Motivation:
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
3/99
Open-sourcefused-deposition fabber
-Extrudes melted plastic
http://www.reprap.org/
self-replicating(can make some of its
own parts)
(Bath University)
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
4/99
http://fabathome.org/
Open-source fabber
-Extrudes e.g., silicone
Available as a kit
Fab@home
(Cornell)
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
5/99
Existing fabricators are great if...
You want to build small, high-precisionplastic parts,
and/or
Your company has lots of money to
spend on a nifty machine!
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
6/99
Design goals & principles
Ultra-low cost 3D Fabricator
Build size > resolution
Low media costs Open source design
Sidestep the patent minefield!
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
7/99
One solution:
Build objects out of melted sugar
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
8/99
Box with movable floor
(piston)
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
9/99
The Process
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
10/99
Sugar!
Hot air gun
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
11/99
Move hot air gun,Selectively fuse sugar
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
12/99
Lower Bed
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
13/99
Add more sugar
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
14/99
Selectively fuse sugarto layer below
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
15/99
Lower Bed
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
16/99
Add more sugar
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
17/99
Selectively fuse sugarto layer below
Hot air gun
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
18/99
Lower Bed(Etc.)
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
19/99
Grow objects,layer by layer
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
20/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
21/99
Selective Hot Air Sintering And Melting
Very low cost Low tech: easy and reliable Eye Safe No open flame
Works with a variety of media Good acronym
(SHASAM)
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
22/99
Why Sugar?
Seriously cheap! Safe, non-toxic, biodegradable
Kid friendly. Tasty! Potentiallygood for casting
Remarkably rigid, despite low melting point Smellsgreatwhen it melts.
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
23/99
Building the CandyFab 4000
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
24/99
First victim: HP DraftPro pen plotter
(Future CandyFab X-axis)
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
25/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
26/99
Next victim: HP 7550A pen plotter
(Future CandyFab Y-axis)
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
27/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
28/99
3rd victim: 12 V Scissor Jack
(Future CandyFab Z-axis)
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
29/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
30/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
31/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
32/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
33/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
34/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
35/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
36/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
37/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
38/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
39/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
40/99
Build volume: 23 x 13 x 9 (!)
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
41/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
42/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
43/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
44/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
45/99
Electronic design
4-axis control: 3 motion + heater
Custom AVR-based servo motor controls Use original quadrature-encoded servomotors from HP plotters
Using Make Controller as computerinterface (overkill!)
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
46/99
Control System: Big picture
Computer
Goto X1,Y1,Z1,Goto X2,Y2,Z2,
Goto...
Hardwareinterface
3D model
Locally-managedclosed-loop control
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
47/99
Closed-loopservo control code
(C and/orassembly)
uint16_teepromWord__attribute__((section(".eeprom")));
int main( void ){unsignedint FontWord,m,n; ! ! ! //16-bitunsignedintegersunsignedchar hiByte;uint8_tstringNo,stringNoCopy,i,altset,NoOfStrings; ! //8-bitunsignedintegersuint8_tPA,PB,PD; ! ! ! !!PGM_Pp;char buf[100]; ! ! ! //Setnumberofcharactersperstring:thiseatsmostofthe SRAM!
!//Initializationroutine:Clearwatchdogtimer--thiscanpreventseveralthingsfromgoingwrong. !MCUSR&= 0xF7; ! //ClearWDRFFlagWDTCSR = 0x18; ! //Setstupidbitssowe cancleartimer...WDTCSR = 0x00;
DIDR= 3U; ! ! //Disableanalogcomparator--savepower.#ifdefcommonanode! PORTA= 255U;! PORTB= 255U;! PORTD= 255U;#endif
//Initroutine:Checktoseeif pinD4isconnectedto ground.Ifit is,thenwewill use//StringSet2insteadofStringSet1asour listofvalidstrings.//Inthe defaultfirmware,thisisusedtochoose whetherweshouldusethe holidayphrasesornot.//Howit'sdone: ConfigurepinD4asan input,withpull-upresistorturnedon.//Then,readinputvalue. Ifinputislow, D4hasbeenpulledlow byanexternalforce.
DDRD&=~_BV(PD4); ! //D4:InputPORTD|=_BV(PD4); ! //D4Highasm("nop"); ! ! ! //Waitonecyclefor inputtobeready --thisisimportant.
! altset= 0;! NoOfStrings=NoOfStrings1;//Datadirectionregister:DDRD//Setallportstooutput *EXCEPT*PA2(notused)! DDRA= 3U;! DDRB= 255U;! DDRD= 127U;//TurnallLEDsoffto beginwith:
#ifdefcommonanode! PORTA= 255U;! PORTB= 255U;! PORTD= 255U;#else! PORTA= 0;! PORTB= 0;! PORTD= 0;#endif!!!//ReadstringnumberfromEEPROM datamemory.Ifgood,incrementitand save//thenewvalue toEEPROM.This allowsustocyclethroughthe setofstringsinflash,//usingannew oneeachtimethat theunitisreset.
if (eeprom_read_word(&eepromWord)> (uint16_t)NoOfStrings)! stringNo= 0U;else! stringNo=(uint8_t)(eeprom_read_word(&eepromWord));!!s tr in gN oC op y = s tr in gN o;!if (++stringNo>=NoOfStrings)! stringNo= 0U;eeprom_write_word(&eepromWord,stringNo);
stringNo=stringNoCopy;
for (;;) //mainloop{
! memcpy_P(&p,&StringSet1[stringNo],sizeof(PGM_P));!! strcpy_P(buf,p); !!!/ / i f ( ( st r i n gN o C o py = = 0 ) & & ( + + s tr i n g No > = N o O f S tr i n g s) ) / / L oo p t h r o ug h s t r i ng s i n D e m o m o de !// stringNo =0U;
! if (stringNoCopy==0){! ! if (++stringNo>=NoOfStrings)! ! ! stringNo= 0U;! }!
i= 0;! while(buf[i]!= '\0' ) ! //i.e.,whilethestring hasnotended! {! !//Addashortdelay--an offperiod--betweencharacters://Defaultdelaytimevalue:2000U,butyou canchangethisvaluein therange(0,65535U).//Thisdelayisimportantbecauseitgives visualseparationbetweenrepeatingletters.//Withoutthedelay,theword"TREE"looks likeitjustsays"TRE"
! m= 0;! while (m> 8; ! //Wanttoworkwithone byteata time,here.!//Calculatemappingfromfontsontooutputpinports:! ! ! ! P B = ( 255U&FontWord);! ! ! ! PD=((hiByte& 15U)|((hiByte& 48U ) < > 6);
! m= 0;
.C
Linked Object Code
:100000000C9434000C9485000C944F000C944F0019
:100010000C944F000C944F000C944F000C944F0024:100020000C944F000C944F000C944F000C944F0014
:100030000C944F000C944F000C944F000C944F0004:100040000C944F000C944F000C944F000C944F00F4
:100050000C944F000C944F000C944F000C944F00E4:100060000C944F000C944F0011241FBECFEFD4E02E
:10007000DEBFCDBF11E0A0E0B1E0E0E1F6E002C0FC:1000800005900D92A030B107D9F711E0A0E0B1E0E2
:1000900001C01D92A430B107E1F70C94CC000C9480:1000A00000001092000110920101109202011092C2
:1000B000030152985A9A3D98459AE9E6F0E080810A:1000C0008160808380818D7F8083E89A7894089511
:1000D000E89A0895882329F060E070E080E090E0DD:1000E0000895609100017091010180910201909149
:1000F00003010895882341F44093000150930101C6:10010000609302017093030108951F920F920FB63E
:100110000F9211242F933F938F939F93AF93BF938D:1001200029B186B133273695279536952795992796
:10013000689414F8969587951694E1F7822793278B:1001400080FF0CC08091000190910101A0910201FB
:10015000B09103010196A11DB11D0BC0809100015A:1001600090910101A0910201B09103010197A109B1
:10017000B1098093000190930101A0930201B09313:100180000301BF91AF919F918F913F912F910F905C
:100190000FBE0F901F901895C9EED4E0DEBFCDBF03:1001A0000E94510083EA84BD81E085BD17BC18BC64
:1001B00080E68AB91092800081EC8093810088EEFD:1001C0009DEF909385008093840080ED9DE0AFEFDC
:1001D000BFEF8093000190930101A0930201B093BF:1001E00003018091000190910101A0910201B09161
:1001F0000301662477244301198A1A8A1B8A1C8A00:1002000013E2E12E1AEFF12E1FEF012F1FEF112F36
:10021000ED86FE860F87188B19861A861B861C862C:100220004424552400E61AEE1E8B0D8B18861F827F
:10023000222433242CED3FEF3E832D831C821B822E:100240001A821982809184009091850081569A4E7D
:1002500058F480918400909185008153954798F0DF:100260008B819C81892B79F41092850010928400F7
:1002700090E296BB81EC80938100ACEDBFEFBE8332:10028000AD831C821B82B59B5CC0EB81FC81EF2B94
:1002900089F4E0908600F0908700FE82ED8281E88C:1002A00080938100B0E2FB2EF6BA01E010E01C83DF
:1002B0000B8347C080918600909187002D813E81FD:1002C000821B930B9E838D836CE070E00E94F4028E
:1002D0009B018D819E816CE070E00E94F402069784:1002E00010F02F5F3F4F80E395E790938500809358
:1002F00084001C821B82C901875B93408B5494400D:1003000000F553E0283E350718F428EE33E006C028
:1003100087E0213D380710F020ED37E0285E3340BC:100320008FE190E0DC012A9FC0012B9F900D3A9F46
:10033000900D11247C0100271127E98AFA8A0B8B82:100340001C8B8091000190910101A0910201B0915C
.hex
Code stored inFlash memory
Simplified view:
GNU tools for AVR are excellent, extremely well supported
Easy GUI installers for Mac, Windows, full packages for Linux
Microcontroller choice: AVR + GCC toolchain
Compiler & Linker+ Libraries
Programmer
avrdude
avr-gccavr-libcbinutils
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
48/99
Ugly--but functional-- prototypes!
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
49/99
Operational testing
First step: Test 2D motion control system& air heater
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
50/99
Worlds first CNC toaster!
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
51/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
52/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
53/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
54/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
55/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
56/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
57/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
58/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
59/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
60/99
Next: 3D Modeling software
(Manygood options...)
Initial choice:POV-Ray
www.povray.org
Freeware with available source Cross-platform support Programming language for 3D graphics Makes slicing easy
http://www.povray.org/http://www.povray.org/ -
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
61/99
Compatibility
Standard file type for 3D fabbingis .STL
Successfully converted, thus far:Blender, Rhino STL files
Others likely including sketchup
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
62/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
63/99
Perform slicing operation in POV-Ray:
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
64/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
65/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
66/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
67/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
68/99
Mass production!
Mass production!
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
69/99
Mass production!
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
70/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
71/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
72/99
Improving build quality
(or, You call thata dodecahedron?)
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
73/99
Heating element for hot air rework station
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
74/99
Heating element for hot-air rework station(desoldering tool)
Up to 500W (using ~50 W), $10
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
75/99
Problems with the current heater
Airflow is too high: Blows around dry sugar,pushes melted sugar
Too large of an area is heated Inconsistent heating leads to variable color
Unknown heater construction...
Not food grade output!
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
76/99
Too much air...
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
77/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
78/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
79/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
80/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
81/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
82/99
C li li i
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
83/99
Culinary applications
Initial tests were not consideredfood safe.
Need to treat sugar like food Need clean, audited air path
Not recycling sugar through system Easily cleaned inner liner
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
84/99
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
85/99
First Edible CandyFab Output
Wh S ?
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
86/99
Why Sugar?
Seriously cheap! Safe, non-toxic. Kid friendly.
Biodegradable, cleans up easily Tasty!
Potentiallygood for casting
Remarkably rigid, despite low melting point Smellsgreatwhen it melts.
O b d
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
87/99
On beyond sugar....
If it bleeds, we can kill it.melts fab
O b d
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
88/99
On beyond sugar....
Chocolate chips
Waxes Other sugars, sorbitol, ....
Many plastics (Thermoplastics)
Low melting point glasses (maybe?) Low melting point metals (Tin, bismuth....)
Media choices:whatever can melt in your oven
First durable CandyFabbed Object
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
89/99
First durable CandyFabbed Object
Polypropylene pellets
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
90/99
CandyFabMaking Rapid Prototypinga little sweeter!
www.candyfab.org
The CandyFab Project
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
91/99
The CandyFab Project
Complete redesign of CandyFabby May 2008:
The CandyFab 5000S
Redesign will use off-the-shelf components(no old plotters!)
All hardware, mechanics, software, firmwarewill be open source & cross-platform
First Goal:
The CandyFab Project
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
92/99
The CandyFab Project
CandyFab.org has been up one month(10% of time to May 2008)
60+ volunteers, with a wide range ofinterests and skills
Significant progress on newheater & nozzle reference designs
Status:
Early progress: New heater design by Brian ward
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
93/99
y p g g y
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
94/99
Early progress: CFD simulations by Brian ward
The CandyFab Project
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
95/99
The CandyFab Project
Design of new XYZ motion control system Sort out control model & types of
feedback used
New architectural model of base Likely choice: CNC routed plywood
Begin hardware & firmware design of
new motor controllers
Design CNC control software Possibly branch an existing project
Next Steps (in order):
Control System: Big picture
Goto X1,Y1,Z1,
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
96/99
y g p
Computer
Goto X1,Y1,Z1,Goto X2,Y2,Z2,
Goto...
Hardware
interface(Low-cost AVR)
3D model
.STL, POV-Rayor set of slices (JPEG)
Locally-managedclosed-loop control
Open-source electronics:
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
97/99
p
Unusual approach to make design accessible:
Electronic design usingopen-source tools:the gEDA suite: gSchem + PCB
The future: open-source sculpture?
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
98/99
p p
Sculpture Metatron, by Bathsheba Grossman,released as open source .STL file
-
8/14/2019 Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group
99/99
CandyFabMaking Rapid Prototypinga little sweeter!
www candyfab org