name: inverse class: center, middle, inverse layout: true .header[.floatleft[.teal[Christopher Biggs] — Sketching in Hardware].floatright[.teal[@unixbigot] .logo[@accelerando_au]]] .footer[.floatleft[.hashtag[lca2018] 🖼❤️💻 .hashtag[artandtech] Jan 2018]] --- name: callout class: center, middle, italic, bulletul layout: true .header[.floatleft[.teal[Christopher Biggs] — Sketching in Hardware].floatright[.teal[@unixbigot] .logo[@accelerando_au]]] .footer[.floatleft[.hashtag[lca2018] 🖼❤️💻 .hashtag[artandtech] Jan 2018]] --- layout: true template: callout .header[.floatleft[.teal[Christopher Biggs] — Sketching in Hardware].floatright[.teal[@unixbigot] .logo[@accelerando_au]]] .footer[.floatleft[.hashtag[lca2018] 🖼❤️💻 .hashtag[artandtech] Jan 2018]] --- class: center, middle template: inverse # Sketching in Hardware ## .green[Getting from Concept to Installation in the Internet Of Things] .bottom.right[ Christopher Biggs, .logo[Accelerando Consulting]
@unixbigot .logo[@accelerando_au] ] ??? Hi everyone. I'm Christopher Biggs. I've been involved with electronic gadgets since I was a teenager, and throughout 20 years as a software engineer, architect and manager. Until recently, and thank you J and Kris for this, I never really considered myself an artist. But I've come to recognise that those of us in tech who work on software all day often feel a gap in our lives because we have no physical output from our labours that we can point to. In my day job, I founded a consultancy which helps businesses use technology to reduce stress. This is what what I strongly believe, that technology facilitates the gradual process of freeing humanity from drudgery and fear. I started Accelerando because I wanted to contribute to a future that I can be excited to live in. --- layout: true template: callout .crumb[ # Welcome # Why? ] --- class: center, middle template: inverse # Why? ??? The aspects of building the world I want to live in that I want to tell you about today, are the Internet Things that I create to improve our homes and offices. Some of them are serious and practical, and some less so. --- # Future A, or B? .fig50l[ ]] .fig50r[ ] ??? I think a lot about what kind of future I want to live in. On the left we have Star Trek, which says that in the future whenever we want to do anything we have to poke at a screen or command a disembodied computer "Tea, Earl Grey, Hot." In the Star Trek future, the computer becomes an unavoidable presence in our lives. Everything we do is mediated through it. On the right we have a still from the 1984 production of Frank Herbert's Dune, directed by David Lynch. A problematic book, and widely regarded as a terrible movie, neverthless it is spectacularly beautiful film to look at. You can turn the sound down if you like. --- # Future A, or B? .fig50l[ ]] .fig50r[ ] ??? The world of Dune is a future where they had their AI singularity, decided that in fact they didn't much like it, and chose another path. The household items of Dune are smart, some of them even hold conversations, but interactions are tactile and subtle. This technology stays in the back ground, literally becomes part of the furniture, and when it needs to attract our attention it does so discreetly. And of course, form follows function. In Star Trek everything is a rectangle, devices make piercing beeps, and the computers all sound like they're vaguely pissed off. At least in the Next Generation series they discovered how to apply the corner radius property. In Herbert and Lynch's vision, everything is elegant, deferential, and pleasant to hold. This is more like it. --- # “Technology is stuff that doesn’t work yet.” ##– Bran Ferren (via Douglas Adams) ??? I love this quote from Artist and Technologist Bran Ferren, who was making the point that when things just work, we stop calling them technology. Nobody calls chairs technology, despite the amount of engineering sophistication that goes into them, becuase they almost never go rogue for no visible reason. Rather unlike the Internet Of Things. --- # My Three Laws of IoT * **First Law:** Devices must cooperate for the benefit of humans * **Second Law:** Devices must communicate, and obey instructions * **Third Law:** Devices must be as simple and reliable as possible ??? So I give you my three laws of IoT * Devices must cooperate for the benefit of humans * Devices must communicate, and obey instructions * Devices must be as simple and reliable as possible If you squint a bit they look like Asimov's laws. That's not really profound, it's just a bit of fun. --- # My Three* Laws of IoT * **Zeroth Law:** Devices must be beautiful (or invisible). * **First Law:** Devices must cooperate for the benefit of humans * **Second Law:** Devices must communicate, and obey instructions * **Third Law:** Devices must be as simple and reliable as possible .footnote[-ish] ??? But Asimov got to retcon in a Zeroth law, so I can too. Devices must be beautiful, or invisible. If we invite computers into our living rooms, bedrooms and bathrooms they can't look like truck parts. --- # Looks like, Works like. .fig50[ ] ??? So how do we do this, how do we arrive at beautiful objects that are also practical and well behaved. Well in the world of IoT prototypes, we often begin by treating these goals as two separate concerns. At one time we concentrate on how to solve the problem efficiently, without regard to aesthetics. At another time we consider how we want the finished product to look and feel, without being bothered by actually having to work. You can do these steps in either order, or at the same time, and of course they influence each other to some degree, so you almost always go through multiple iterations to converge on your final concept. It's been said that at Apple when they're designing a new product they make ten prototypes for every one that sees the light of day. The best two are selected and then they'll build a dozen more iterations of each of those as they refine the design. --- layout: true template: callout .crumb[ # Welcome # Why # How (hardware) ] --- # Fast iterations in hardware ??? It used to be that designers worked in pencil, and clay or cardboard, and would fiddle with an idea until they were confident enough to commission a prototype, which might take months to be manufatured. Today we have 3d modelling software and desktop manufacturing, and we can create, learn from and discard several prototypes in a single day. --- # Desktop Manufacturing technologies * Laser cutting * Computer-Numeric-Control cutting (CNC milling) * Fused Filament Fabrication (3D Printing) ??? The technologies I'm going to talk about are laser cutting, computer milling, and 3D printing. The first two are relatively specialised. --- # CNC Milling/Routing .fig50[ ] ??? A computer controlled milling machine uses a high speed spinning cutter to chop away material. If you've used a Dremel tool, imagine handing it to a robot. You can use this tool to cut shapes out of sheet materials, but you can also sculpt in 3 dimensions. --- # Laser cutting .fig70[ .center[]] ??? A laser cutter does the same thing, but with a laser, and it only works in two dimensions. Laser cutting allows you to make very precise parts from plastic, wood or cardboard, with minimal waste and noise. The smoke and smell can be problematic, though. A couple of weeks ago my daughter and I built an entire laptop computer from a kit, which came as a box of parts mostly made from laser-cut wood. Earlier today, J showed us what they're doing with laser-cut wood to complement their digital works. --- # Desktop Manufacturing technologies * Computer-Numeric-Control cutting (CNC milling) * Laser cutting * Fused Filament Fabrication (3D Printing) ??? Now I started my journey to rapid prototyping in this order, I got a small desktop milling machine, which let me make items from plastic and wood. Then I added a modest laser which could cut out stickers and films. I have a much more powerful laser waiting to be installed but I haven't had a chance to set it up yet. Then, last year, I got my first 3D printer. Now I have four. Today, I think you can skip or outsource your milling and lasercutting and just get a 3D printer. --- # Fused Filament Fabrication ## Just call it 3D Printing, everyone does. ??? In contrast to subtractive processes that cut away material, 3D printing works by taking a roll of plastic that looks a bit like it came out of a garden line trimmer, and squeezing the plastic through a hot nozzle that melts it into a tiny warm. There's very little waste, and the noise and smells are minimal to nonexistent. Unlike the other technologies, 3D printing has been until recently either rather expensive, or maddeningly fiddly. But I want to convince you today that this technology is now ready for you to try. --- class: center, middle template: inverse # What the heck is "3D Printing"? ??? So where are we in the journey of 3D printing from technology to furniture. --- # Imagine it's the 1980s (Watch "Stranger Things" on Netflix if you need a reminder) ??? It's 1985. You've been accepted to do a presentation at unix.conf.au (Linux doesn't exist yet). You want to prepare a slide deck. Well, guess what sunshine, you need to prepare an actual deck of actual 35mm photographic slides. You can't just write the slides on your laptop on the plane, because laptops don't exist yet either. You needed to start a month ago, and have a hundred bucks up your sleeve. If you don't have the time or budget, you have a flip chart and a marker pen. Or you hand-write some overhead transparency films. Or, maybe you need to prepare a report for your boss, and you want to impress. Well in your office you have these shitty dot matrix printers that print on fanfold paper that makes your report look like a cash register receipt. If you want something impressive you have to go and butter up a typist to type it for you, or schlep down to the corner print shop and pay them to print it. --- # Imagine it's the 1990s. (One word. Baywatch) ??? It's the 90s. Well, thank goodness, we have laser printers now, and they can even print on transparent films for our overhead projector. Oh you wanted colour? Back off to the mall. Today, you run off a colour document on your office copier, chuck it in the binding machine and you could have looked professional if you hadn't typset the whole thing in comic sans. That's not font bashing, I actually like comic sans, but I wouldn't use it on tombstone or an annual report. --- .fig40[ ] # 3D printing is the office copier for everything ### (Except it's mostly still the 1990s) ??? So 3D printing is about at the stage of that 1990s laser printer. It's good for many things, but not everything. --- layout: true template: callout .crumb[ # Welcome # Why? # How? (hardware) ] --- class: center, middle template: inverse # Why would I want a 3D printer? ??? So given you have to watch baywatch reruns, why would you try 3D printing today. --- # 1. I want it now ### (Well, tomorrow would be OK, I guess) .pad2[ ] .pad2[ ] .pad2[ ] --- # 2. I broke it ### For want of a horseshoe, the war was lost .pad2[.fig50l[ ]] .pad2[.fig50r[ ]] --- # 3. Nobody sells this ## Profitable is not the same thing as useful .fig40[ ] .fig40[ ] --- .fig40[ ] .fig40[ ] --- layout: true template: callout .crumb[ # Welcome # Why? # How? (hardware) # Deep Dive ] --- # IoT Prototyping Deep Dive ## Medication Reminder ??? So now I want to tell you about a particular project. Many of us take daily medication, including myself and my son. Some of us struggle to remember to dose on time, or at all. Now there are a number of solutions out there for helping you to remember, but to my mind they're all Star Trek solutions. You can get medication reminder apps, which will blare alarms at you, and you can get plastic medicine boxes with days and times printed on, or even with a little digital alarm clock. These solutions all have one thing in common, they range from boringly utilitiarian to, in the words of an old family expression, ugly as a hatful of arseholes. --- # IoT Prototyping Deep Dive ## Medication Reminder .pad2[.fig50l[ ]] .pad2[.fig50r[ ]] ??? I wanted something pretty. One of my kids has attention deficit disorder. When you ask an ADD kid if they'bve remembered to take his medication, the answer is usually I dont remember. So how do you motivate a child to do something? Video games! Why not make a medicine box that recreates a health pack item from a video game. Oh, and it's on the internet, so it can send you a reminder notification. And it knows when you last opened the box, so if you forget when you last dosed, it knows. Finally to meet my laws of IoT, it's polite. If you remember to take your meds, it does nothing. When you're up to date it's green. When you should take a dose, it's blue. When you're due imminently it's amber, if you haven't acted by around the time you'd leave the house, it goes red and sends you a polite message to your phone. --- .fig50[ ] .spacedown[ # K.I.S.S.] ??? Lets begin with the simplest thing that could possibly work. I went to the craft store and bought a $5 blank jewelry box. I downloaded a design for 3D printed hinges. I didn't find a latch I liked, so I designed my own. And then I put a tiny computer inside, that can sense when the lid is opened, and uses wifi to connect to Amazon's internet of things framework. So we have a works like prototype that proves the concept, but isn't too petty. --- .fig50l[ ] .fig50r[ ] ??? But we can save this, my son's a gamer, so lets decorate the box to resemble a game item. We need a white cross in a red circle. So this leads us in to how to design in 3D. --- ## Designing in 3D (for coders) .fig100[ ] ??? Appropriately for an art and tech talk, there are two ways to go. If you are a coder you can't go past a constructive geometry tool, like openSCAD or sketchup. These tools let you build complex parts by composing simple shapes using set operations like unions, intersections and differences. The advantage of working in this way is that you can adjust parameters and produce a final design which can easily be modified or remixed by others. The disadvantage is of course you have to be a nerd. --- ## Designing in 3D (for the rest of us) .fig100[ ] ??? And this is why I think its time for you to try 3D printing. You can do 3D modeling in a web browser. Even from your phone or tablet. This is tinkercad from autodesk, and its a whole lot of fun. --- ## Prototype 2 - Looks Like .fig50l[ ] .fig50r[ ] ??? So lets get cocky. My son got his video card upgraded, so we can make a game item from Overwatch. The box itself uses the electronics from the works-like prototype, but we get rid of the cord. I took a wireless charging kit for a mobile phone and put the transmitter in the base, and the receiver in the box. But how do we print that box. You cant print in mid air, so either you need to print a disposable support structure, or break your design into parts. I find support structures to be a pain, so I decided to split up my design. --- ## Splitting models .fig20[ ] .fig20[ ] .fig20[ ] ??? There's a great tool called Meshmixer that lets you cut models up into parts, and if you're using OpenSCAD then you can do it in code by just subtracting a cube from the part you don't want. This is also a great technique for making test prints, which I learned from Naomi Wu. If you're just experimenting with one part of your project, like say the handle, you can cut away most of the rest of the model to save time. ---  # Details * Print different colours * Paint, dye, or airbrush * Split into parts, or print whole ---  # FDM goes mainstream * Officeworks * Aldi * Jaycar ---  # Online Cheapies ## Order direct from China, some assembly required * Desktop (150mm cube, $200-$400) * Benchtop (220mm cube, $400-$800) * Bigtime (500mm cube, $1600+) * Fancy ($2000+) --- .fig40[ ] # How long does it take? * Button - 5min * Fan knob - 10min * Shelf brackets - 2hours * Phone stand - 5 hours * Pipette stand - 11hours --- .fig50[  # Is it fiddly? ## Sometimes --- layout: true template: callout .crumb[ # Welcome # Why # What # How ] ---  # One more thing - Electronics * Wemos D1 Mini - Tiny Wifi computer * Plug in modules - Switches, Lights, Screens, Sensors * Mongoose OS - Code in Javascript --- .fig30[  ] # Recap .nolm[ * Technology that serves you, not the market * Baywatch reruns * Choose your cost-hassle tradeoff * Come and build your own ] --- # Resources, Questions ## Related talks - [http://christopher.biggs.id.au/#talks](http://christopher.biggs.id.au/#talks) ## Me - Christopher Biggs - Twitter: .blue[@accelerando_au] - Email: .blue[christopher@biggs.id.au] - Slides, and getting my advice: http://christopher.biggs.id.au/ - Accelerando Consulting - IoT, DevOps, Big Data - https://accelerando.com.au/ ??? Thanks for your time today, I'm happy to take questions in the few moments remaining and I'm here all week if you want to have a longer chat. Over to you. --- # References * openscad.org - 3D modelling for coders * octoprint.org - retrofit wifi to your printer * tinkercad.com - web modeling * astroprint.com - web "slicer" * wemos.cc - the D1 Mini and its sleds * mongoose-os.com - Up and running with IoT in two minutes