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

Embed Size (px)

Citation preview

  • 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