SlideShare a Scribd company logo
1 of 38
Download to read offline
Hardware Hacking


  by Andy “Bob The Builder” Brockhurst
  For the Yahoo! Developers Network
  and SkillsMatter
   Picture “Hardware Hacking”




                                 by nicholasjon- flickr
Talk topics (in no particular order)
   Introduction
       What is hardware hacking
       How to get started
   Microprocessors
   Sensors & Switches (Hardware I/O)
       The world is your mollusc
   Basic Circuit Theory
       How to get those sensors to work
If anything should go wrong


   Blame this next guy
   Photo “Hacking”
What is hardware hacking
   Hacking
       An elegant solution to a difficult problem
       Using a technology for something it was
        not originally intended.
Types of hardware hacking
   Just hacking hardware
   Circuit Bending
   Reverse Engineering
   Toy Hacking
   SteamPunk
   Craft Hacking/“Making”
   Photo: “WRT54G & NSLU2”




                              by lime*monkey- flickr
   Picture “Circuit Bending”




                                by jamie_hladky- flickr
Circuit Bending
   Pete Edwards
   Musician/Hacker
   http://casperelectronics.com
   Picture “Reverse Engineering”




                         by Micah Dowty- flickr
    Picture “Toy Hacking”




by Vanderlin - flickr
   Picture “Making”
   Photo: “Steampunk”




                         by Balakov- flickr
   Picture “Reverse Engineering”




                                    by Neal Connor- flickr
Getting Started
   Arduino
       Entry level microprocessor
       OpenSource Hardware & Software
       14 digital Inputs/Outputs (6 PWM Out*)
       6 analogue Inputs
       IDE with loads of example code
       Aimed at artists/hobbyists with limited
        programming experience

    *We’ll come to this shortly
Arduino (Atmega 328)
   16bit Microprocessor, Embedded C
   32k Flash, 2k SRAM, 1k EEPROM
   16Mhz
Arduinos are not the only fruit
   Atmel Tiny (ATtiny)
   PIC AVR (PICAXE)
   Range of ARM processors
   FPGA
Arduino
   OpenSource Hardware
       Schematics freely available
       Lots of “Flavours”; Diecimila, Duemilanove,
        Mega, Mini, Nano, Lilypad
       Lots of boards for specific tasks;
        Motor/servos, Autonomous Vehicles,
        Robotics, Autopilots, CNC (*32 makers)
       Sheilds to extend functionality; Bluetooth,
        wifi, radio, ethernet, GPS, relays, LCD,
        touchscreen…
Arduino Initiatives
   Software
       Processing
           IDE is based on Processing and Wiring
       Fritzing
           Prototyping and circuit layout
   EduWear
       Introducing programming and electronics
        to children
Hardware Hacking


  Let’s build some stuff!
by Bekathwia - flickr
Arduino (very) Basic I/O - Parts
   Setup a circuit
       Arduino
       Breadboard
       LED
       Resistor
       Switch
       Wire
Arduino (very) Basic I/O - Layout
Arduino (very) Basic I/O - Code
   Define an input and an output
   Read the input and set the output
void setup() {
  pinMode(2, INPUT);
  pinMode(13, OUTPUT);
}

void loop() {
  int switchValue = digitalRead(2);
  digitalWrite(13, switchValue);
}
Take it a bit further
   Substitute the LED for a physical
    interaction device
       Servo
       Bit more wire
Adding a servo
Update the code
#include <Servo.h>

Servo myServo;
int steps[] = {0,60,120,180};
int currentPos = 0;

void setup() {
  pinMode(2, INPUT);
  myServo.attach(13);
  myServo.write(steps[0]);
}

void loop() {
  if (HIGH == digitalRead(2)) {
    currentPos = (3 == currentPos) ? 0 : currentPos + 1;
    myServo.write(steps[currentPos]);
    delay(500);
  }
}
Taking it further
   Substitute the switch for a physical
    interaction device
       Piezo Electric transducer
       Can be used to sense “Knocks”
Wire in the piezo
More code updates
#include <Servo.h>

Servo myServo;
int steps[] = {0,60,120,180};
int currentPos = 0;
const int KNOCKTHRESHOLD = 100;

void setup() {
  myServo.attach(13);
  myServo.write(steps[0]);
}

void loop() {
  if (KNOCKTHRESHOLD <= analogRead(0)) {
    currentPos = (3 == currentPos) ? 0 : currentPos + 1;
    myServo.write(steps[currentPos]);
    delay(500);
  }
}
Tour of the software
   Arduino IDE
   Fritzing
by pieter [iamdoom / bwrah bwrah]- flickr




   Photo “Inspiration”
Getting Inspiration
   MakeZine
       http://blog.makezine.com/
   Instructables
       http://www.instructables.com/
   Circuit-Projects
       http://www.circuit-projects.com/
   Tinker.it
       http://www.tinker.it/
Where to get stuff
   Specialist Arduino Retailers (UK)
       http://www.earthshinedesign.co.uk/
       http://www.oomlout.co.uk/
   Other Hardware suppliers (UK)
       http://www.active-robots.co.uk/
       http://www.techbotics.co.uk/
       http://www.technobots.co.uk/
       http://www.ebay.co.uk/
Finding fellow hackers
   London Hacker Space
       http://london.hackspace.org.uk/
       irc://irc.freenode.net/london-hack-space
   London DorkBot
       http://dorkbotlondon.org/
Thank you for listening


   Where I can be found:
      http://kingkludge.net/
      http://twitter.com/b3cft

   (or in the pub)

More Related Content

What's hot

Open hack 2011-hardware-hacks
Open hack 2011-hardware-hacksOpen hack 2011-hardware-hacks
Open hack 2011-hardware-hacksSudar Muthu
 
BSides DFW2016-Hack Mode Enabled
BSides DFW2016-Hack Mode EnabledBSides DFW2016-Hack Mode Enabled
BSides DFW2016-Hack Mode Enabledpricemcdonald
 
Arduino technical session 1
Arduino technical session 1Arduino technical session 1
Arduino technical session 1Audiomas Soni
 
Introduction to Arduino Programming
Introduction to Arduino ProgrammingIntroduction to Arduino Programming
Introduction to Arduino ProgrammingJames Lewis
 
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! nightInternet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! nightAndy Gelme
 
Rdl esp32 development board trainer kit
Rdl esp32 development board trainer kitRdl esp32 development board trainer kit
Rdl esp32 development board trainer kitResearch Design Lab
 
Cheap, good, hackable tools from China: AVR component tester
Cheap, good, hackable tools from China: AVR component testerCheap, good, hackable tools from China: AVR component tester
Cheap, good, hackable tools from China: AVR component testerDobrica Pavlinušić
 
Using arduino and raspberry pi for internet of things
Using arduino and raspberry pi for internet of thingsUsing arduino and raspberry pi for internet of things
Using arduino and raspberry pi for internet of thingsSudar Muthu
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to ArduinoYong Heui Cho
 
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent Sandbox
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent SandboxHITBSecConf 2017-Shadow-Box-the Practical and Omnipotent Sandbox
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent SandboxSeunghun han
 
Hardware hacking for software people
Hardware hacking for software peopleHardware hacking for software people
Hardware hacking for software peopleDobrica Pavlinušić
 
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel Protector
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel ProtectorBlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel Protector
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel ProtectorSeunghun han
 
FSEC 2014 - I can haz your board with JTAG
FSEC 2014 - I can haz your board with JTAGFSEC 2014 - I can haz your board with JTAG
FSEC 2014 - I can haz your board with JTAGDobrica Pavlinušić
 
Raspberry Pi - best friend for all your GPIO needs
Raspberry Pi - best friend for all your GPIO needsRaspberry Pi - best friend for all your GPIO needs
Raspberry Pi - best friend for all your GPIO needsDobrica Pavlinušić
 
HITBSecConf 2016-Create Your Own Bad Usb
HITBSecConf 2016-Create Your Own Bad UsbHITBSecConf 2016-Create Your Own Bad Usb
HITBSecConf 2016-Create Your Own Bad UsbSeunghun han
 
Arduino Lecture 1 - Introducing the Arduino
Arduino Lecture 1 - Introducing the ArduinoArduino Lecture 1 - Introducing the Arduino
Arduino Lecture 1 - Introducing the ArduinoEoin Brazil
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduinovishal kumar
 
Arduino Introduction Presentation
Arduino Introduction PresentationArduino Introduction Presentation
Arduino Introduction Presentationericholm
 

What's hot (20)

Open hack 2011-hardware-hacks
Open hack 2011-hardware-hacksOpen hack 2011-hardware-hacks
Open hack 2011-hardware-hacks
 
BSides DFW2016-Hack Mode Enabled
BSides DFW2016-Hack Mode EnabledBSides DFW2016-Hack Mode Enabled
BSides DFW2016-Hack Mode Enabled
 
Arduino technical session 1
Arduino technical session 1Arduino technical session 1
Arduino technical session 1
 
Introduction to Arduino Programming
Introduction to Arduino ProgrammingIntroduction to Arduino Programming
Introduction to Arduino Programming
 
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! nightInternet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
 
Rdl esp32 development board trainer kit
Rdl esp32 development board trainer kitRdl esp32 development board trainer kit
Rdl esp32 development board trainer kit
 
Ardunio
ArdunioArdunio
Ardunio
 
Cheap, good, hackable tools from China: AVR component tester
Cheap, good, hackable tools from China: AVR component testerCheap, good, hackable tools from China: AVR component tester
Cheap, good, hackable tools from China: AVR component tester
 
Using arduino and raspberry pi for internet of things
Using arduino and raspberry pi for internet of thingsUsing arduino and raspberry pi for internet of things
Using arduino and raspberry pi for internet of things
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent Sandbox
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent SandboxHITBSecConf 2017-Shadow-Box-the Practical and Omnipotent Sandbox
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent Sandbox
 
Hardware hacking for software people
Hardware hacking for software peopleHardware hacking for software people
Hardware hacking for software people
 
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel Protector
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel ProtectorBlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel Protector
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel Protector
 
amrapali builders@@sub way hacking.pdf
amrapali builders@@sub way hacking.pdfamrapali builders@@sub way hacking.pdf
amrapali builders@@sub way hacking.pdf
 
FSEC 2014 - I can haz your board with JTAG
FSEC 2014 - I can haz your board with JTAGFSEC 2014 - I can haz your board with JTAG
FSEC 2014 - I can haz your board with JTAG
 
Raspberry Pi - best friend for all your GPIO needs
Raspberry Pi - best friend for all your GPIO needsRaspberry Pi - best friend for all your GPIO needs
Raspberry Pi - best friend for all your GPIO needs
 
HITBSecConf 2016-Create Your Own Bad Usb
HITBSecConf 2016-Create Your Own Bad UsbHITBSecConf 2016-Create Your Own Bad Usb
HITBSecConf 2016-Create Your Own Bad Usb
 
Arduino Lecture 1 - Introducing the Arduino
Arduino Lecture 1 - Introducing the ArduinoArduino Lecture 1 - Introducing the Arduino
Arduino Lecture 1 - Introducing the Arduino
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
Arduino Introduction Presentation
Arduino Introduction PresentationArduino Introduction Presentation
Arduino Introduction Presentation
 

Viewers also liked

Menús diarios final para el blog
Menús diarios final para el blogMenús diarios final para el blog
Menús diarios final para el blogamaliabellod
 
Chris France, Alta Devices
Chris France, Alta DevicesChris France, Alta Devices
Chris France, Alta DevicesPatrick Egan
 
#26 SUSB Expo 2014 Alta Devices
#26 SUSB Expo 2014 Alta Devices#26 SUSB Expo 2014 Alta Devices
#26 SUSB Expo 2014 Alta DevicessUAS News
 
Project Eagle 鷹巡機 - 資深農友的自動趕鳥無人機
Project Eagle   鷹巡機 - 資深農友的自動趕鳥無人機Project Eagle   鷹巡機 - 資深農友的自動趕鳥無人機
Project Eagle 鷹巡機 - 資深農友的自動趕鳥無人機Maxwell Peng
 
Global_Cleantech_Innov_Index_2014
Global_Cleantech_Innov_Index_2014Global_Cleantech_Innov_Index_2014
Global_Cleantech_Innov_Index_2014Aloïs Kirner
 
Powering the Internet of Things with Apache Hadoop
Powering the Internet of Things with Apache HadoopPowering the Internet of Things with Apache Hadoop
Powering the Internet of Things with Apache HadoopCloudera, Inc.
 
Internet of Things (IoT) - We Are at the Tip of An Iceberg
Internet of Things (IoT) - We Are at the Tip of An IcebergInternet of Things (IoT) - We Are at the Tip of An Iceberg
Internet of Things (IoT) - We Are at the Tip of An IcebergDr. Mazlan Abbas
 
Internet of Things & Hardware Industry Report 2016
Internet of Things & Hardware Industry Report 2016Internet of Things & Hardware Industry Report 2016
Internet of Things & Hardware Industry Report 2016Bernard Moon
 

Viewers also liked (11)

Menús diarios final para el blog
Menús diarios final para el blogMenús diarios final para el blog
Menús diarios final para el blog
 
Chris France, Alta Devices
Chris France, Alta DevicesChris France, Alta Devices
Chris France, Alta Devices
 
#26 SUSB Expo 2014 Alta Devices
#26 SUSB Expo 2014 Alta Devices#26 SUSB Expo 2014 Alta Devices
#26 SUSB Expo 2014 Alta Devices
 
ZQK JV
ZQK JVZQK JV
ZQK JV
 
Powering the internet of things by MK
Powering the internet of things by MKPowering the internet of things by MK
Powering the internet of things by MK
 
Project Eagle 鷹巡機 - 資深農友的自動趕鳥無人機
Project Eagle   鷹巡機 - 資深農友的自動趕鳥無人機Project Eagle   鷹巡機 - 資深農友的自動趕鳥無人機
Project Eagle 鷹巡機 - 資深農友的自動趕鳥無人機
 
Hanergy Thin Film Panels_201505
Hanergy Thin Film Panels_201505Hanergy Thin Film Panels_201505
Hanergy Thin Film Panels_201505
 
Global_Cleantech_Innov_Index_2014
Global_Cleantech_Innov_Index_2014Global_Cleantech_Innov_Index_2014
Global_Cleantech_Innov_Index_2014
 
Powering the Internet of Things with Apache Hadoop
Powering the Internet of Things with Apache HadoopPowering the Internet of Things with Apache Hadoop
Powering the Internet of Things with Apache Hadoop
 
Internet of Things (IoT) - We Are at the Tip of An Iceberg
Internet of Things (IoT) - We Are at the Tip of An IcebergInternet of Things (IoT) - We Are at the Tip of An Iceberg
Internet of Things (IoT) - We Are at the Tip of An Iceberg
 
Internet of Things & Hardware Industry Report 2016
Internet of Things & Hardware Industry Report 2016Internet of Things & Hardware Industry Report 2016
Internet of Things & Hardware Industry Report 2016
 

Similar to Hardware Hacking

Advanced View Arduino Projects List - Use Arduino for Projects-4.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-4.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-4.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-4.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects 3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 3.pdfAdvanced View Arduino Projects List - Use Arduino for Projects 3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 3.pdfWiseNaeem
 
Controlling robots using javascript
Controlling robots using javascriptControlling robots using javascript
Controlling robots using javascriptSudar Muthu
 
Advanced View Arduino Projects List - Use Arduino for Projects.pdf
Advanced View Arduino Projects List - Use Arduino for Projects.pdfAdvanced View Arduino Projects List - Use Arduino for Projects.pdf
Advanced View Arduino Projects List - Use Arduino for Projects.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects 5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects 5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 5.pdfWiseNaeem
 
Arduino UNO based Projects List -Use Arduino for Projects.pdf
Arduino UNO based Projects List -Use Arduino for Projects.pdfArduino UNO based Projects List -Use Arduino for Projects.pdf
Arduino UNO based Projects List -Use Arduino for Projects.pdfIsmailkhan77481
 
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdfWiseNaeem
 
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdfAdvanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfWiseNaeem
 
Advanced view arduino projects list use arduino for projects (2)
Advanced view arduino projects list   use arduino for projects (2)Advanced view arduino projects list   use arduino for projects (2)
Advanced view arduino projects list use arduino for projects (2)WiseNaeem
 
Scottish Ruby Conference 2010 Arduino, Ruby RAD
Scottish Ruby Conference 2010 Arduino, Ruby RADScottish Ruby Conference 2010 Arduino, Ruby RAD
Scottish Ruby Conference 2010 Arduino, Ruby RADlostcaggy
 
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdfAdvanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects (5).pdf
Advanced View Arduino Projects List - Use Arduino for Projects (5).pdfAdvanced View Arduino Projects List - Use Arduino for Projects (5).pdf
Advanced View Arduino Projects List - Use Arduino for Projects (5).pdfIsmailkhan77481
 
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfWiseNaeem
 
Taking the hard out of hardware
Taking the hard out of hardwareTaking the hard out of hardware
Taking the hard out of hardwareRonald McCollam
 
Arduino Robotics workshop Day1
Arduino Robotics workshop Day1Arduino Robotics workshop Day1
Arduino Robotics workshop Day1Sudar Muthu
 
Advanced View Arduino Projects List _ Use Arduino for Projects {4}.pdf
Advanced View Arduino Projects List _ Use Arduino for Projects {4}.pdfAdvanced View Arduino Projects List _ Use Arduino for Projects {4}.pdf
Advanced View Arduino Projects List _ Use Arduino for Projects {4}.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfWiseNaeem
 

Similar to Hardware Hacking (20)

Advanced View Arduino Projects List - Use Arduino for Projects-4.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-4.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-4.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-4.pdf
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
Advanced View Arduino Projects List - Use Arduino for Projects 3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 3.pdfAdvanced View Arduino Projects List - Use Arduino for Projects 3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 3.pdf
 
Controlling robots using javascript
Controlling robots using javascriptControlling robots using javascript
Controlling robots using javascript
 
Advanced View Arduino Projects List - Use Arduino for Projects.pdf
Advanced View Arduino Projects List - Use Arduino for Projects.pdfAdvanced View Arduino Projects List - Use Arduino for Projects.pdf
Advanced View Arduino Projects List - Use Arduino for Projects.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects 5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects 5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 5.pdf
 
Arduino UNO based Projects List -Use Arduino for Projects.pdf
Arduino UNO based Projects List -Use Arduino for Projects.pdfArduino UNO based Projects List -Use Arduino for Projects.pdf
Arduino UNO based Projects List -Use Arduino for Projects.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdf
 
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdfAdvanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
 
Advanced view arduino projects list use arduino for projects (2)
Advanced view arduino projects list   use arduino for projects (2)Advanced view arduino projects list   use arduino for projects (2)
Advanced view arduino projects list use arduino for projects (2)
 
Scottish Ruby Conference 2010 Arduino, Ruby RAD
Scottish Ruby Conference 2010 Arduino, Ruby RADScottish Ruby Conference 2010 Arduino, Ruby RAD
Scottish Ruby Conference 2010 Arduino, Ruby RAD
 
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdfAdvanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects (5).pdf
Advanced View Arduino Projects List - Use Arduino for Projects (5).pdfAdvanced View Arduino Projects List - Use Arduino for Projects (5).pdf
Advanced View Arduino Projects List - Use Arduino for Projects (5).pdf
 
What is Arduino ?
What is Arduino ?What is Arduino ?
What is Arduino ?
 
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
 
Taking the hard out of hardware
Taking the hard out of hardwareTaking the hard out of hardware
Taking the hard out of hardware
 
Arduino Robotics workshop Day1
Arduino Robotics workshop Day1Arduino Robotics workshop Day1
Arduino Robotics workshop Day1
 
Advanced View Arduino Projects List _ Use Arduino for Projects {4}.pdf
Advanced View Arduino Projects List _ Use Arduino for Projects {4}.pdfAdvanced View Arduino Projects List _ Use Arduino for Projects {4}.pdf
Advanced View Arduino Projects List _ Use Arduino for Projects {4}.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
 

Recently uploaded

10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka DoktorováCzechDreamin
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Patrick Viafore
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceSamy Fodil
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutesconfluent
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101vincent683379
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2DianaGray10
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsUXDXConf
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
Buy Epson EcoTank L3210 Colour Printer Online.pptx
Buy Epson EcoTank L3210 Colour Printer Online.pptxBuy Epson EcoTank L3210 Colour Printer Online.pptx
Buy Epson EcoTank L3210 Colour Printer Online.pptxEasyPrinterHelp
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyUXDXConf
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomCzechDreamin
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxDavid Michel
 

Recently uploaded (20)

10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering Teams
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Buy Epson EcoTank L3210 Colour Printer Online.pptx
Buy Epson EcoTank L3210 Colour Printer Online.pptxBuy Epson EcoTank L3210 Colour Printer Online.pptx
Buy Epson EcoTank L3210 Colour Printer Online.pptx
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 

Hardware Hacking

  • 1. Hardware Hacking by Andy “Bob The Builder” Brockhurst For the Yahoo! Developers Network and SkillsMatter
  • 2. Picture “Hardware Hacking” by nicholasjon- flickr
  • 3. Talk topics (in no particular order)  Introduction  What is hardware hacking  How to get started  Microprocessors  Sensors & Switches (Hardware I/O)  The world is your mollusc  Basic Circuit Theory  How to get those sensors to work
  • 4. If anything should go wrong Blame this next guy
  • 5.
  • 6. Photo “Hacking”
  • 7. What is hardware hacking  Hacking  An elegant solution to a difficult problem  Using a technology for something it was not originally intended.
  • 8. Types of hardware hacking  Just hacking hardware  Circuit Bending  Reverse Engineering  Toy Hacking  SteamPunk  Craft Hacking/“Making”
  • 9. Photo: “WRT54G & NSLU2” by lime*monkey- flickr
  • 10. Picture “Circuit Bending” by jamie_hladky- flickr
  • 11. Circuit Bending  Pete Edwards  Musician/Hacker  http://casperelectronics.com
  • 12. Picture “Reverse Engineering” by Micah Dowty- flickr
  • 13. Picture “Toy Hacking” by Vanderlin - flickr
  • 14. Picture “Making”
  • 15. Photo: “Steampunk” by Balakov- flickr
  • 16. Picture “Reverse Engineering” by Neal Connor- flickr
  • 17. Getting Started  Arduino  Entry level microprocessor  OpenSource Hardware & Software  14 digital Inputs/Outputs (6 PWM Out*)  6 analogue Inputs  IDE with loads of example code  Aimed at artists/hobbyists with limited programming experience *We’ll come to this shortly
  • 18. Arduino (Atmega 328)  16bit Microprocessor, Embedded C  32k Flash, 2k SRAM, 1k EEPROM  16Mhz
  • 19. Arduinos are not the only fruit  Atmel Tiny (ATtiny)  PIC AVR (PICAXE)  Range of ARM processors  FPGA
  • 20. Arduino  OpenSource Hardware  Schematics freely available  Lots of “Flavours”; Diecimila, Duemilanove, Mega, Mini, Nano, Lilypad  Lots of boards for specific tasks; Motor/servos, Autonomous Vehicles, Robotics, Autopilots, CNC (*32 makers)  Sheilds to extend functionality; Bluetooth, wifi, radio, ethernet, GPS, relays, LCD, touchscreen…
  • 21. Arduino Initiatives  Software  Processing  IDE is based on Processing and Wiring  Fritzing  Prototyping and circuit layout  EduWear  Introducing programming and electronics to children
  • 22. Hardware Hacking Let’s build some stuff!
  • 23. by Bekathwia - flickr
  • 24. Arduino (very) Basic I/O - Parts  Setup a circuit  Arduino  Breadboard  LED  Resistor  Switch  Wire
  • 25. Arduino (very) Basic I/O - Layout
  • 26. Arduino (very) Basic I/O - Code  Define an input and an output  Read the input and set the output void setup() { pinMode(2, INPUT); pinMode(13, OUTPUT); } void loop() { int switchValue = digitalRead(2); digitalWrite(13, switchValue); }
  • 27. Take it a bit further  Substitute the LED for a physical interaction device  Servo  Bit more wire
  • 29. Update the code #include <Servo.h> Servo myServo; int steps[] = {0,60,120,180}; int currentPos = 0; void setup() { pinMode(2, INPUT); myServo.attach(13); myServo.write(steps[0]); } void loop() { if (HIGH == digitalRead(2)) { currentPos = (3 == currentPos) ? 0 : currentPos + 1; myServo.write(steps[currentPos]); delay(500); } }
  • 30. Taking it further  Substitute the switch for a physical interaction device  Piezo Electric transducer  Can be used to sense “Knocks”
  • 31. Wire in the piezo
  • 32. More code updates #include <Servo.h> Servo myServo; int steps[] = {0,60,120,180}; int currentPos = 0; const int KNOCKTHRESHOLD = 100; void setup() { myServo.attach(13); myServo.write(steps[0]); } void loop() { if (KNOCKTHRESHOLD <= analogRead(0)) { currentPos = (3 == currentPos) ? 0 : currentPos + 1; myServo.write(steps[currentPos]); delay(500); } }
  • 33. Tour of the software  Arduino IDE  Fritzing
  • 34. by pieter [iamdoom / bwrah bwrah]- flickr  Photo “Inspiration”
  • 35. Getting Inspiration  MakeZine  http://blog.makezine.com/  Instructables  http://www.instructables.com/  Circuit-Projects  http://www.circuit-projects.com/  Tinker.it  http://www.tinker.it/
  • 36. Where to get stuff  Specialist Arduino Retailers (UK)  http://www.earthshinedesign.co.uk/  http://www.oomlout.co.uk/  Other Hardware suppliers (UK)  http://www.active-robots.co.uk/  http://www.techbotics.co.uk/  http://www.technobots.co.uk/  http://www.ebay.co.uk/
  • 37. Finding fellow hackers  London Hacker Space  http://london.hackspace.org.uk/  irc://irc.freenode.net/london-hack-space  London DorkBot  http://dorkbotlondon.org/
  • 38. Thank you for listening Where I can be found: http://kingkludge.net/ http://twitter.com/b3cft (or in the pub)