name: inverse class: center, middle, inverse layout: true .header[.floatleft[.teal[Christopher Biggs] — The Art of IoT].floatright[.teal[@unixbigot] .logo[@accelerando_au]]] .footer[.floatleft[The Linux Of Things .hashtag[lca2019] --- Jan 2019 Christchurch, NZ]] --- name: callout class: center, middle, italic, bulletul layout: true .header[.floatleft[.teal[Christopher Biggs] — The Art of IoT].floatright[.teal[@unixbigot] .logo[@accelerando_au]]] .footer[.floatleft[The Linux Of Things .hashtag[lca2019] --- Jan 2019 Christchurch, NZ]] --- layout: true template: callout .header[.floatleft[.teal[Christopher Biggs] — The Art of IoT].floatright[.teal[@unixbigot] .logo[@accelerando_au]]] .footer[.floatleft[The Linux Of Things .hashtag[lca2019] --- Jan 2019 Christchurch, NZ]] --- class: center, middle, inverse template: title .fig100[ ] ??? Welcome, my name is Chris and today I want to talk to you about... --- layout: true template: callout .crumb[ # Welcome ] --- # Who am I? ## Christopher Biggs — .teal[@unixbigot] — .logo[@accelerando_au] * Brisbane, Australia * Linux user since the very beginning (floppy discs at 2400 baud!) * Convenor, Brisbane Internet Of Things Meetup * Founder, .logo[Accelerando Consulting] * Accelerando is a "full service" consultancy - chips to cloud ??? So who am I? I've been involved with electronic gadgets since I was a teenager, and throughout 20 years as a software engineer, architect and manager. In my day job I operate Accelerando Consulting which helps businesses use technology to reduce stress. Really, that's what I believe, that technology is the gradual process of freeing humanity from drudgery and fear, and I started Accelerando because I wanted to contribute to a future that I will be excited to live in. --- # The story so far ??? At the last LCA I talked about rapid manufacturing techniques such as 3D printing and laser cutting. I touched briefly on electronics in that talk but didn't have time to go into any detail. Well, it's time. Only took a year. --- layout: true template: callout .crumb[ # Welcome # Waffling ] --- class: center, middle template: inverse # Philosowaffling ## Or, What is The Internet of Things, anyway? ??? But first, I want to talk about why I want to talk about what I want to talk about. Did you follow that? --- # Computers for humans, but not *for* humans ??? There's a lot of confusion about what the Internet of Things really means. Like any new buzzword there's a lot of piling on by existing players who want to siphon off mindshare. But this is what IoT means to me... --- # Art is Technology for the soul ??? Which dovetails nicely into my approach to art. There's a perception that tech folks are not arty. But. --- .fig40[ ] .spacedown[# Is this art? ] ??? Undeniable Creativity -- .spacedown[ ## (Or some nightmare?)] ??? Which is not to say it's a good idea. -- .footnote[tldr: both. It's an early Television Set] --- .fig60[ ] # Technology is the Art of Imagining a Better Way --- .fig50r[ ] # Printed Circuit Boards .footnote[("**Printed**" because ink is deposited on the blank copper, and then acid eats away the un-inked part leaving complex wiring fixed to to the insulating fibreglass. The ink is then washed off)] -- .fig50l[ ] --- .fig80[ ] .spacedown[ ## PCB Computer Aided Design (CAD)] --- .fig80[ ] .spacedown[ ## From Schematic Diagram...] --- .fig80[ ] .spacedown[ ## ...to Circuit Board] --- .fig50[ ] .spacedown[ # Meet the Most Successful Robot Ever] ??? You might think I Can't. But. -- The secret is, you don't have to be brilliant, just good enough at doing jobs we didn't want to do anyway --- layout: true template: callout .crumb[ # Welcome # Waffling # History ] --- class: center, middle template: inverse # << History ## (Say you want a revolution) ??? Lets go back and look at how we got here. And Artists had a lot more influence than you'd expect. --- .fig50[ ] .spacedown[ # Boring with Style! ## The industrial control of the 1960s ] ??? We've been using electricity to improve our lives for over a century. We started with wires and relays and mechanical timers, if you've ever wrestled with one of those washing machines where you have to crank a big dial. Then in the second half of the 20th century, transistors and then microprocessors came along. -- ## ...and today .footnote[Bonus Sexism!] ??? And nothing much changed. Technologists built microcomputers that simulated those timers and relays, and kept on doing the same things. Imagine if you interacted with your mobile phone via the medium of a goose feather quill. In the 1990s... --- .fig50l[ ] # ...40 years later ## Arduino - a revolution in the cost and accessiblity of physical computing ??? Let's fast forward to the early 21st century. -- .fig50r[ ] ## Technology by and for artists! -- .footnote[Invented in a Pub!] ??? So we find ourselves riding a revolution that was started by a couple of artists in a pub. Tech professionals actually hated this stuff when it was new. It was an invitation to ridicule to discuss these toys on some tech fora. --- .fig60[ ] .spacedown[ # Nek Dekkade] ## Smaller, faster, cheaper ??? Over the next ten years... Faster processors, more memory --- .fig60[ ] .spacedown[ # We're not savages... ## ...it's WiFi ] ??? Wireless communication --- .fig50l[ ] # Wifi WonderBlocks ??? Current sweet spot -- .fig50r[ ] ## Stackable circuit modules --- layout: true template: callout .crumb[ # Welcome # Waffling # History # Future ] --- class: center, middle template: inverse # >> Future ??? So here we are, living in the future. And I really mean that. --- .fig60l[ ] .spacedown[ # Being Boring, Real Fast] ## Solve real problems with pluggable modules ??? I want to use some of my projects to illustrate the journey from concept to installation. -- .fig50r[ ] .spacedown[Make your own custom modules for a few bucks ] ??? Also tips. --- .fig50l[ ] .fig50r[ ] # Tip: Document ## The "Silk-Screen" text is there purely for your documentation .footnote[Nowadays giant inkjet printers are used instead of actual silk-screening] --- # Let's neaten things up .fig60l[ ] -- .fig40r[ ] .spacedown[ Cheap tiny CPU-and-memory modules form the core of your custom project] --- # Complex stuff from simple parts .fig80[ ] .spacedown[ This is a USB peripheral to let a roadside traffic computer reboot buried sensors. Cheaper than a backhoe!] --- .fig70[ ] .spacedown[ # You can leave your hat on] Build modules to plug on top of single-board computers such as the Raspberry Pi. ??? If you're wondering what you can do with the raspberry pi microcomputer in your swag bag... -- .spacedown[Tip: Think outside the rectangle ] ??? Notice how the boards on the right are oddly shaped. -- Bonus tip: your PCB can be your user interface ??? The big opening is for the power swittch. The status lights are mounted on the board and shine through the case. The black connectors hook into the power supply and external connections. --- .fig70[ ] .spacedown[ # Module soup Radio module for retrofitting internet to water meters. Literally one tick for every time the little needle goes around. 5 years battery life.] ??? Here's something a little more complex. But not really. --- .fig60[ ] .spacedown[ # Did I say Complex? Power-over-ethernet controller for eight underground sensors] ??? Now lets take this to the extreme. Computer, screen, ethernet switch for power control. --- .fig60[ ] .spacedown[ # Tip: Colour your revisions p.s. An undergrad intern from The University of Queensland designed this!] -- Bonus Tip: touch screens cost under ten bucks --- .fig80[ ] .spacedown[ ## Tip: PCB-mounted hardware] The blue board has holes for vertical screws On the yellow board, the sockets for horizontal mounting screws are soldered to the PCB like other components --- layout: true template: callout .crumb[ # Welcome # Waffling # History # Future # Examples ] --- class: center, middle template: inverse # Simple complexity --- .fig40[ ] .spacedown[ # Sketchbook to Wall] Problem: digital wind-speed displays for inside aircraft hangars .spacedown[Need to be robust and long lived, but only need a handful of units] --- .fig70[ ] .spacedown[ # Grab some parts...] --- .fig50[ ] .spacedown[ # ...Lash 'em up] "Veroboard" is like a breadboard you can chop to size -- .fig50l[ ] CNC milling machines can cut one-off boards (but don't, really!) --- .fig70[ ] .spacedown[ # CAD Option 2 ## Autodesk Eagle Free for small boards. Cheapish for unrestricted. ] --- .fig80[ ] .spacedown[ # All in one] This PCB actually holds all the other compontents together including the LED display. --- .fig80[ ] .spacedown[ # Hang it on the wall!] CNC cut and folded metal enclosure --- layout: true template: callout .crumb[ # Welcome # Waffling # History # Future # Examples # SMT ] --- class: center, middle template: inverse # We've barely scratched the surface ??? Pins sticking through boards Surface mount technology. Paste and syringes. Actually easier. --- .fig60[ ] .spacedown[ # Let's make a sticker-bot] .spacedown[ Two motors to move pen. Servo (+ rubber band) to lift pen. Controlled by your laptop over WiFi.] --- .fig40[ ] .spacedown[# Version Minus One ] .spacedown[ ## A wifi development board and some motor control modules, on a breadboard] --- .fig60[ ] .spacedown[ # Version Zero] .spacedown[ ## Arduino nano and an off-the-shelf CNC Shield] --- # Now, Iterate .fig50l[ ] -- .fig50r[ ] -- .fig50r[ ] --- # Putting it all together .fig50r[ ] -- .fig50l[ ] -- .fig50l[ ] ??? Late in the process I decided to go taller. So now I have different shape. --- layout: true template: callout .crumb[ # Welcome # Waffling # History # Future # Examples # SMD # Fancy ] --- class: center, middle template: inverse # Don't get bent out of shape --- # Let's get frivolous A christmas-themed project for the Brisbane IoT Meetup. .fig50r[ ] ??? At the brisbane internet of things meetup we do the normal wine and nibbles nights, but we also do saturday afternoon practical workshops. -- .fig50l[ ] ??? For christmas last year... But the snowflakes on that quilt got me thinking... -- .fig50r[ ] --- .fig80[ ] --- .fig80[ ] --- .fig80[ ] --- .fig80[ ] --- .fig70[ ] .spacedown[ ## CAD Option 3 ## KiCad Open source. A little* harder to learn than Eagle. ] .footnote[YMMV] ??? I'm not an engineer. My first solo project in KiCad. Find a hackerspace, or a pet nerd, or previous LCA talks. --- .fig80[ ] ??? What's the process of turning this into a this... --- class: tight # Getting boards made .fig50r[ ] -- .fig50l[ ] -- .nolm[ * "Gerber Format" layer files
(Copper, Masking, Silkscreening, Cutouts)] -- .nolm[* "Excellon Format" drilling files ] -- .nolm[* Upload a zipfile of all the above, wait for go/nogo] -- .nolm[* How much for 10 boards?] -- .nolm[* Five bucks] -- .nolm[* No, not each, total] -- .nolm[* Optional: have the whole thing assembled] .footnote[Links at end] --- # How long? -- * Normal thickness and colour: 3-4 days (pay extra for 48hr or 24hr rush) -- * Fancy processes/colours: ~5 days -- * With assembly: 3-4 weeks ---
.drop[ ]
.drop[ ]
--- layout: true template: callout .crumb[ # Welcome # Waffling # History # Future # Examples # SMD # Fancy # Recap ] --- .fig30[  ] # Recap .nolm[ * If you can join wires, you can make Printed Circuits * Start with something that bores you, and bore a computer instead * Plug some modules together * Now make 10 PCBs for $5.00 * Use your colours, and silkscreens, and copper tracks * Shapes are easy, and the PCB service will help you ] -- * .red[GO FORTH AND CREATE] --- # Resources, Questions ## Related talks - [http://christopher.biggs.id.au/#talks](http://christopher.biggs.id.au/#talks) - Email: .blue[christopher @ biggs.id.au] - Twitter: .blue[@unixbigot] - BNE IoT Meetup: .blue[@iotbne] - Accelerando Consulting - IoT, DevOps, Big Data - .blue[@accelerando_au] https://accelerando.com.au/ --- # Links * [Eagle CAD](https://www.autodesk.com/products/eagle/overview) - Full featured design suite with limited free and hobbyist license tiers * [KiCad](http://kicad-pcb.org) - Free-but-less friendly Design suite, for electronics nerds * [Fritzing](http://fritzing.org/home/) - Web-based Design and manufacture site for novices * [PCBWay](http://pcbway.com) - one of many excellent PCB services * [OSHpark](http://oshpark.com) - another well-respected PCB service * [Falstad](http://www.falstad.com/circuit/circuitjs.html) - Simulate your circuits to see if they'll work