Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group

download Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group

of 99

Transcript of Windell Oshaky's Talk about CandyFab to the Stanford Open Source Group

  • 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