Lecture

Table of Contents

Notes taken during the weekly Lecture held by Neil Gershenfeld.

Week 1: Principles and Practices; Project Management

What Fab Academy is about

  • neil talks a bit about
  • personal fabrication is killer for large-scale digital fabrication. just as personal computers killed minicomputers.
  • seamore: kids in computing
  • now: people are empowered to fabricate stuff theirselves. being self-dependent.
  • future: creating devices, machines to build other machines. being even more self-dependent.
  • even further: assembling and disassembling (see lego)
  • ai revolution: you produce something faster than you. ribosomes make ribosomes.
  • self-reproducing systems
  • john von neumann researched about self-reproducing automata.
  • still in research. but we dont have to wait for that
  • technology we are using will become obsolete, bot the real project we are doing is: if anybody can make almost anything, how will we live, lern adn play?
  • i do not quite understand every thought of neil.
  • more deeply: neil gershenfields episode with lex friedman
  • plus: neil gershenfield: designing reality

Introduction of Other FabLabs

  • Aalto FabLabs: Krisjanis Rijnieks
  • Waag Futurelab: henk
  • creative spark: die sind lustig
  • energy lab ist in togo
  • agrilab: has a farm attached
  • leon: krasse instructors
  • shenzen fab lab: its a whole city. the whole scity is a fablab
  • fablab oulu: student of ferdi

Documentation

  • question in chat: bad documentation?
  • timestamp: 17:22 Ilmenau (for chat messages)
  • reasons
    • for evaluation
    • as a portfolio
    • act of documenting it helps you learn and
    • documentation acts as a resource for futurue generations
  • rsync: low-level file copying
  • talking about git
  • we want you to do personalized websites

Project Management Principles

  • 80/20 principle
  • demand vs supply-side time management
  • triage: there are gonna be things you want to do, but that you just cannot “save”.
    • rather martial analogy: like in war, when there are injured people that will die no matter what comes. you rather go with the people that will survive.
  • serial vs parallel development -> work in parallel
  • spiral development
  • bottom-up vs top-down debugging
  • document and clean as you work
  • dont use instructors to skip reading
  • do oyour own workflow for the week and dont skip any on this important non-technical skills
  • keygen: do not use rsa
    • hank: Ed25519 is preferred for a variety of reasons. You should use it, and no, keygen hasn’t been updated to set it as default (likely to avoid breaking backwards compatibility for people scripting it). RSA is entirely acceptable and has no known security flaws. 2048 bits might be starting to become a bit weak and while the default key size was bumped to 3072 a few years ago, some older distros still default to 2048; you might want to manually specify -b 3072 or 4096 if you want to use RSA.
  • you do not need to document git if you already know it

Week 2: CAD

  • Introducing people
    • luciana (coordination)
    • norella coronell
    • julian (it)
  • image manipulation
  • CAD
    • can be used for 2d and for 3d design
    • constraints…
  • 3D design
    • boundary representation
      • can lead to problems somehow
    • function representation
      • means more computation
    • volume representation (pixels of 3d)
      • needed forreally messy coomplex things.
  • programs. freecad solidworks, etc are all tools he would recommend.
    • Blender
      • there is a cad sketching tool for blender
      • there a cad sketcher for blender. however, it is rough around the edges
      • blender is great at sculpting
      • has a thing named “geometry nodes”, whatever this is
      • like modelling with clay
      • you can do rendering stuff
    • Fusion
      • best integrated in all the steps of design, simulation, path planning, rendering
    • SolidWorks
      • can handle complex designs
      • good tools for life cycle management. tools for material managemnet, sending bills etc.
    • Onshape
      • only in cloud. from ground-up it is collaborative
    • FreeCAD
      • use containers. one can hold multiple parts. you can do operations on the container then
    • the one tool for frep modelling
      • turned into libfive
  • simulation
    • blender has a nice physics simulation. do not build an airplane with it, but iyou can do chains and stuff
  • video/audio
    • stay away from gifs other than a few frames
    • kdenlive
  • AI stuff
    • see link
  • LLMs with CAD
    • does understand how to use CAD, but has no understanding of geometry nor of physics.

Questions

what 3d rep is used in common cad tools?

what is this imperative, declarative, generative, optimization, … etc in the notes?

For moving from one app to another, what considerations are there for file formats? - Benedikt: normally I use .step for 3d models because they are actually 3d models, not only meshs like .stl for 2d files .dxf works for me really well but .svg are also powerful. I prefer .dxf because the integration in Inventor and Fusion is a lot better than .svg.

Would you recommend me to still look at some commercial software? If yes, why? I am thinking about maybe looking at only onshape, blender and freecad. - recommend trying them and understanding what the differences are among them - this actually is the assignment

Ferdi’s Addendum

  • regarding the website: most of the other used mkdocs. works quite nicely
  • i do not have a specific idea for my final project yet. what do i do?
  • talks about evaluation
    • there is gonna be a mid-term review. that makes it easier for us.
  • todos for next week:
    • be able to do parametric design
    • you want a cad software that
      • is “feature”-based
        • everything you do (round an edge, extrude) is saved separately from the object. you can change that. blender is not entirely feature-based
      • you want csg: constructive solid geometry: you will never see the “inside” of a sphere. it is not possible to “look inside”
      • should have a history or a tree of operations
      • you want the software to be parametric, that is you can change parameters later on
      • associative: you want to be able to add constraints
    • problem with freecad is: topological naming issue. however, you also have that in professional software.
  • big players:
    • cadja, siemens nx, creo
    • those have smaller brothers:
      • cadja -> solidworks
      • creo -> solidedge
      • fusion360 -> inventor
  • for linux users it is a bit a struggle
    • freecad is an option
    • onshape is an option
    • xdesign is an option
    • solvespace is an option (although freecad might be better)
  • what would you recommend to model for this week?
    • would be nice to try out assembly features

Week 3: Computer-Controlled Cutting

  • compression

    • do not commit .mov. they are not web standard. commit something else
    • h265 is compressing better than h264 but not widely supported in web
    • using zip just to compress files is fine.
    • if files get very big: do not upload them in git. it is fine to host it externally and put a link for where you are hosting that
  • vinyl cutter

    • applications
      • vinyl:
        • pcbs
        • cutting copper
        • tshirt customization
        • stickers
    • issues:
      • set force, speed, depth the blade goes in. all of that depends on material, humidity, etc.
      • set a vinyl cutter requires skill
      • you can hold things in place by
      • weeding: remove the stuff you dont want. that takes the real skill
  • laser cutter

    • applications
      • halftoning
      • pressfit construction
    • kerf the stuff that gets cut’ away
    • you need to think of that during constructing
    • materials
      • cardboard
        • bad cardboard when you bend iit, it kinks
        • good cardboard makes a smooth bow
        • good cardboard: heavy duty shipping cardboard
      • pasta
      • fabric
      • wood
      • acrylic
        • cuts easily, high resolution, cracks easily. not touch
        • good for displays
      • acetal/delrin
        • doesnt cut as clean, but is tougher. if you drop it it doesnt crack, it just deforms
        • good for use joints, moves…
      • there are some differences in delrin and acrylic
      • dont cut pvc when you dont know where it comes from!
  • pressfit construction kit

    • joints
      • simple one
      • champher
        • always do this. it is easier to align parts and compresses the cardboard parts
      • this ^ is a hierarchy of stronger and stronger joints
      • if you want to have kids play with this you just need a chamfer
      • finger
        • dont really hold well
        • but good for kids playing they do not need joints so strong
      • snap is better for stability
      • if you have something that is supposed to bend, make the point where it meets the body stronger. to reduce stress
    • you can also curve 3d shapes from something 2d
      • if you make a beam and you bend it
  • this weeks rehearsal:

    • what is programming
    • how to get stuff into chips
    • how to debug?

Ferdi’s Addendum

  • document whoever is speaking and a picture of whet they producd in the week.
    • maybe a name, a link, a description
  • lets meet every thursday at 9
  • preliminary to tomorrow:
    • everybody does safety stuff
  • tomorrow:
    • 1h lecture on laser cutting plus additional information
    • afterwards, intro to lasercutter
  • from now on we meet every thursday from 9:00 to ???
  • nesting: act of arranging pieces on a sheet so that everything is layouted perfectly (material efficiently)
    • deepnest is a software that does that for you
    • however, ferdi says that you can do it yourself also pretty good.
  • kyub: software vom hpi
  • minimum assignment:
    • karton dass man zusammenstecken kann
    • gruppenassignment
    • sticker schneiden

Lasercutting (Ferdi)

  • nice tools
    • cuttle
    • flatfab
    • thenounproject for symbols
  • if you are looking for vector graphics, using fonts is always nice. lazer consists of tube filled with co2. on one side there is a mirror with a whole inside. on the other side, it is open.
  • what you can do with a lazer that you cannot do with a milling machine:
    • engraving
  • 3 types
    • 3o2 laser (unikat)
    • there are dc and ac lasers
      • dc lasers have a glass tube
      • ac have metal tubes
      • regarding the tube: if you replace it check that there is no leak
      • lasers degrade slowly. with the time its power decreases, you need to reduce the speed with the time for the same results
      • dc laser can burn a little whole or not when you engrave. the really cheap chinese lasers cannot do halftone.
    • diode laser
      • small, efficient
      • dont have so much power.
      • come in different frequencies. lot cheaper. last lot longer
      • frequency range is different
      • with most of them you cannot cut transparent acrylic
    • fiber laser
      • like diode lasers. you send your light in a fiber.
  • different options for halftone:
    • stipple
    • work in different patterns, but result in similar …
    • circles arranged in diagonals, in grid, randomly placed.
    • our laser can only make dots of one specific size. we can only vary the density of the dots. not the thickness
  • beds:
    • honeycomb: problem: when your cardboard is not perfectly flat. gets bend
    • stripes of steel or L profiles (you can clean them and if they break, you can cut new ones)
  • air assist: air is blown through somewhere near the head. to blow out the flame.
  • cleaning
    • use lint free wipes (optics store)
    • there is cleaning liquid which is expensive. however, it smells just as contact lense cleaning liquid.
    • dont rub. lay the wipe on the lense, let it soak in and pull it off again.
  • restrict on cutting PVC
    • there is an instant headache. it emits gas which transforms to HCl in your body.
    • there are tests for pvc
  • if you just laser something, inside fills with smoke. wait 5 seconds while the smoke is ventilated.
  • do not stare at the laser
    • this hurts your ieys
  • make sure, the laser is closed. if you can look through the gaps and see the laser, thats not good.
  • normally u do not use glasses. however, our laser does not close properly, so we need to do that.
  • dont move it before you are sure it is cut.
  • another topic is gonna be how to get files from computer to laser
  • if something sounds bad, stop everything immediately.

Week 4: Embedded Programming

  • Intro
    • everybody now has a global evaluator. the global eval is not only an evaluation but its also a person to talk to when there are problems and they help you to fulfill fa standards
    • there is a schedule for it
      February 12: global eval started
      March 9: US Daylight Savings Time
      by March 1: student+local+global intro meetings
      April 9-23:
          - break, midterm
          - preceding weekly assignments due
          - student+local+global review meetings
          - review assignments and final plan
          - sort into likely/possible/unlikely to finish this cycle
      June 4: weekly assignments due
      June 9-13: final presentations
      June 16-20: student+local+global review meetings
      June 23: global eval decisions deadline
      July 4-11: FAB25

Student Reviews

Lecture

  • organizational
    • this time we do it a bit - this time we do it a bit different
  • in the lab we are gonnaa demonstrate with the processors
  • then we will program using a simulator
  • only then we are fabricating
    • in the lab we are gonnaa demonstrate with the processors
    • then we will program using a simulator
    • only then we are fabricating
  • first thing to do is choosing the architecture: von neumann vs harward
  • risc vs cisc?
  • harward vs von neumann?
    • Von Neumann is simpler, has shared memory space for data & instructions; Harvard is more complex, data & instructions use separate memory space, making it more difficult to implement but faster (can access data & instructions simultaneously).
    • Choice depends on your applicaiton needs. Choose based on which mcu family you prefer, e.g. avr, arm, esp32, etc. Instruction sets are similar across families and you can ge mcus with different amounts of memory, pins & peripherals/features.
    • Most programming done in high level, so the architecture is transparent to the programmer.
  • multiple types of memory
  • there is a lot to learn, we dont start from scratch. neil gives us examples
  • we dont need to start from scratches.
  • as we progress we need to know all of this
  • word size
    • what is a word? …
    • example: 8 bit processor can handle same data, just takes more time
    • you can use that using just more powerful prowessor (more fast)
  • pi calculation benchmark
  • how it all works
  • different families
    • AVR
      • What makes it special? …
      • they are nice to embed
    • ARM
      • compared to AVR, arm family are 32 bit
      • somewhat faster clock 48Mhz
      • more kinds of peripherals
      • even smallest one knows how to speak to usb
      • harder to program
      • code is bigger. you need larger programs to program them
      • however, they go up to the processors in superwcomputers/ in phones
      • you use them when you need to go to more povwerful programming interfaces and peripherals.
      • D11C, D11D, D21E, D51 are a single arm family, but the different Ds just say how many pins your chip has
      • STM32 ui dnt know
      • rpi …
      • rp2350 …
      • for most powerful embedded processing: need raspis
      • there are all differen tprocseses
  • octopart: search engine for parts
  • packages:
    • dip (dont use that anymore)
    • surface mount is the way
    • tqfp, lqfp for very small spacings
    • MLF, WLCSP, … for very very small
  • so we chose a package and a family. now: code:
    • we dont start from scratch. we take templates
    • you can use c/c++
      • fast, efficient
    • rust
      • more safe
      • you can use it in embedded, but rust tools are much less supported. there is much more you have to setup.
    • python
      • you can use python also for embedded. you can express much more with python with less python code
      • it is slow. it takes space
      • it is nice to handle however, especially when it comes to math
      • see software benchmarks!
  • in-system development
    • you need bootloader
    • whiy? …
    • jtag programmer for putting it on some microchip. probably some standard
  • development environments
  • operating system
    • bare-metal vs cooperative vs preemptive multitasking
    • operating systems can be used to run programs in parallel on the same microcontroller
    • however, it might be better to have no OS and have different processors for each process
  • shells
    • μC, but inside a nice enclosing with a usb and the pins led out for easy access
  • usb
    • if a μC “speaks usb” that means that the hardware for handling USB is there, but you need to include usb standard in your code with library
  • AI with μC
  • debugging and simulation
    • wokwi
    • For Newbies you can use tinkercircuit which does allow you to use multimeters and the led do blow up :0 this good for just getting started you will need to move to wokwi
    • AVR8js is very nice for mixed signals
  • wrapping up:
    • there are few families we like …
    • in

Ferdi’s Addendum

  • option to have class in bigger classroom?
    • yes why not
  • tomorrow at 9:
    • we all would be terribly bored with an arduino intro class
    • arduino intro
    • we should have a look at the few available microprocessors
    • make a plan on what we have to do for the group assignment
    • social modia appointment
  • available boards
    • xiao
  • we will use the rp2040 a lot
  • yes, we really should read all the manual

questions for ferdi

  • which boards do we have?
  • differents microprocessor & microcontroller?

Week 5: 3D Scanning and Printing

Student Reviews

  • Yuya Tokuyama
    • Yume Ga Arukara: best ramen in america
    • E-Ink was invented in neils lab
  • charlotte latin
  • how big is a video allowed to be?
  • Benedikt!!!!!!
    • wants to work with neopixel leds
    • the rp2040 you somehow have multiple processing units you can program. you can program the rp2040 to make custom peripheral with the PIO. to use with eg ws2812 leds.
    • issues with wokwi? sometimes compiling servers were shut down
    • note for arduino flavoured code: avr8js
    • led underneath thinned wood
      • the wood glows through it beautifully
    • duct tape has a half life
  • fpga vs mc?
    • 2 ways to use fpga:
      • need performance that goes beyond the processor

Lecture

  • limitations
    • open materials are affordable
    • “better materaials” are expensive
  • materials
    • see material tables of eg prusa (links on page)
    • pla
      • plant-based
    • petg
      • oil-based, recyclable
    • wood filament
    • metal
    • hygroscopic absorb moisture. you need to dry it. otherwise it will decrease print quality
  • parameters
  • design rules
    • supports in the print
    • 3d printed fabric by not giving the print enough material
    • overhangs
      • 30 deg angle you can brint without supports
      • shorter overhangs can be printed without support
    • bridging works without supports due to tension
    • there is a limit on how thin a wall can be
    • structural properties are anisotropic due to layering.
    • surface finish is function of angle
    • infill
    • avoid sharp corners. we want to have a fase to have anough filament at this place.
  • finish
    • there is a coating to smoothe a 3d printing bath
    • electroplating
  • different techniques for printing
    • stereo lithography etc.
  • different companies/initialtives etc.
    • reprap
      • print printers yourself
    • prusa
    • Bambu
      • difficult to change things
    • formlabs
    • open source machines
      • inmachines
      • hangprinter. print large things in large space
      • e3d
      • precious plastic
      • filastruder
  • funny things
    • 3d print on fabric
    • 3d prints of images
  • food
    • food-safety. you have to
  • formats
    • stl. list of triangles. can be ascii. almost always its binary
      • write algorithms that write stl
    • amf, 3mf
      • not A standard, a shoebox of many standards. still evolving
      • handles splines, frep etc. container that can plugin all different descriptions
      • package of formats. thats the bad about it
    • voxels
      • cannot be handled by printers
    • g-code
    • some other weird sdadards
  • advanced stuff
    • arc overhangs, etc
  • software
    • meshlab for editing i guess
    • slicers
    • printrun for running prints
    • octoprint running print farms
  • scanning
    • tomography (gold standard, very expensive)
    • pour liquid over item. scan ow the oject disappears
    • digitizing arm. selectively take the points that are important.
    • photogrammetry
    • low cost scanner: creality
    • scanning people
      • baking flower or talcum powder helps scan hair
  • ideas
    • print only infill
    • print weird ai-generated 3d objects

Ferdi’s Addendum

  • 9 uhr donnerstag
    • ferdi wird über 3d druck erzählen
  • wir machen donnerstag das group assignment

Intro 3D Printing by Ferdi

  • stereolithographie:
    • 2 laser beams into a liqueid. liquid gets hard only where two beams meet each other
  • ferdi talks about 3d printing back in the days
    • some projects
  • corexy is a method to move something in 3d space. alternative is hbot. how to draw rubber bands. problem with hbot: verzieht die gantry .
  • mtm.cba.mit.edu
  • ilan moyer: erfand shaper
  • nadja: erfand irgendwie druckköpfe ablegen
  • beide erfanden: popfab. drucker den man in koffer packen kann
  • was es noch gibt ist foldarap
  • beide sind nicht verkehrt. könnte man kleiner und kompakter machen
  • another printer that ferdi built: yarr
  • scanning with milk. you can make pictures, upload to fabmodules and render a model from it
  • photogrammetry is also a thing
  • structured light scanning
  • nerf is also a thing
  • printing
    • fdm (fused deposition molding): stratusses was one of the market leaders together with 3d systems. there fdm name comes from
    • fff (fused filament fabrication): open source version of it
    • sls (selective laser sintering)
      • you have powder and you laser the powder until it melts
    • sla (selective laser …) same thing but using a projector
    • stereolithography
    • printing clay with metal and then remove clay in oven
    • neri oxman
  • codethread: library that generates gcode from tiago
    • print only strings
  • lets schweiß together!
  • topopt
    • opology optimization
    • building lightweight structures
    • you can transform models to use less material which always looks cool