SlideShare a Scribd company logo
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 Enabled
pricemcdonald
 
Arduino technical session 1
Arduino technical session 1Arduino technical session 1
Arduino technical session 1
Audiomas Soni
 
Introduction to Arduino Programming
Introduction to Arduino ProgrammingIntroduction to Arduino Programming
Introduction to Arduino Programming
James 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! night
Andy Gelme
 
Rdl esp32 development board trainer kit
Rdl esp32 development board trainer kitRdl esp32 development board trainer kit
Rdl esp32 development board trainer kit
Research Design Lab
 
Ardunio
ArdunioArdunio
Ardunio
DILEEP KUMAR
 
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
Dobrica 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 things
Sudar Muthu
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
Yong 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 Sandbox
Seunghun han
 
Hardware hacking for software people
Hardware hacking for software peopleHardware hacking for software people
Hardware hacking for software people
Dobrica 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 Protector
Seunghun han
 
amrapali builders@@sub way hacking.pdf
amrapali builders@@sub way hacking.pdfamrapali builders@@sub way hacking.pdf
amrapali builders@@sub way hacking.pdf
amrapalibuildersreviews
 
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
Dobrica 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 needs
Dobrica 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 Usb
Seunghun han
 
Arduino Lecture 1 - Introducing the Arduino
Arduino Lecture 1 - Introducing the ArduinoArduino Lecture 1 - Introducing the Arduino
Arduino Lecture 1 - Introducing the Arduino
Eoin Brazil
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
vishal kumar
 
Arduino Introduction Presentation
Arduino Introduction PresentationArduino Introduction Presentation
Arduino Introduction Presentation
ericholm
 

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 Devices
sUAS News
 
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
Takeda Pharmaceuticals
 
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 Hadoop
Cloudera, 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 Iceberg
Dr. 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 2016
Bernard 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

Arduino based IoT Application Programming_20180814.pptx
Arduino based IoT Application Programming_20180814.pptxArduino based IoT Application Programming_20180814.pptx
Arduino based IoT Application Programming_20180814.pptx
nasir458339
 
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
WiseNaeem
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
Green Moon Solutions
 
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
WiseNaeem
 
Controlling robots using javascript
Controlling robots using javascriptControlling robots using javascript
Controlling robots using javascript
Sudar 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.pdf
WiseNaeem
 
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
WiseNaeem
 
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
Ismailkhan77481
 
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
WiseNaeem
 
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
WiseNaeem
 
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
WiseNaeem
 
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 RAD
lostcaggy
 
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
WiseNaeem
 
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
Ismailkhan77481
 
What is Arduino ?
What is Arduino ?What is Arduino ?
What is Arduino ?
Niket Chandrawanshi
 
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
WiseNaeem
 
Taking the hard out of hardware
Taking the hard out of hardwareTaking the hard out of hardware
Taking the hard out of hardware
Ronald McCollam
 
Arduino Robotics workshop Day1
Arduino Robotics workshop Day1Arduino Robotics workshop Day1
Arduino Robotics workshop Day1
Sudar 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}.pdf
WiseNaeem
 

Similar to Hardware Hacking (20)

Arduino based IoT Application Programming_20180814.pptx
Arduino based IoT Application Programming_20180814.pptxArduino based IoT Application Programming_20180814.pptx
Arduino based IoT Application Programming_20180814.pptx
 
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
 

Recently uploaded

Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 

Recently uploaded (20)

Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.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)