Bypassing Endpoint Security for $20 or Less. Philip A. Polstra, ppolstra.blogspot.com
|
|
|
- Earl Dawson
- 10 years ago
- Views:
Transcription
1 Bypassing Endpoint Security for $20 or Less Philip A. Polstra, ppolstra.blogspot.com
2 Roadmap Why this talk? Who is this dude talking at me? Brief history of USB How does USB work? It s all descriptors and endpoints Bulk-only mass storage devices Bypassing endpoint security Microcontrollers are fun (and cheap) Food for thought
3 Why this talk? Many organizations have begun to use endpoint security programs to restrict use of portable media Many software tools do the USB equivalent of MAC filtering only allow authorized VID/PID For $18-30 can easily construct device to allow any mass storage device to impersonate authorized device Allows injection/extraction
4 Who am I anyway? Teach computer security at a private university Like to hack hardware Have been known to fly and build airplanes Been known to play with USB devices
5 Brief History or USB Non-universal serial, PS/2 ports, & LPT 1996 USB 1.0 (1.5 or 12 Mbps) 1998 USB USB 2.0 (1.5, 12, or 480 Mbps) Long pause 2008 USB 3.0 (up to 5 Gbps)
6 HOW DOES USB WORK?
7 Hardware Simple 4-wire connection (power, ground, 2 data wires) Cabling prevents improper connections Hot pluggable Differential voltages provide greater immunity to noise Cable lengths up to 16 feet are possible Pin Name Cable color Description 1 VBUS Red +5 V 2 D White Data 3 D+ Green Data + 4 GND Black Ground
8 Software Automatic configuration No settable jumpers Enumeration Standard device classes with corresponding drivers HID Printer Audio Mass Storage
9 Connecting a Device Device is connected Hub detects Host (PC) is informed of new device Hub determines device speed capability as indicated by location of pull-up resistors Hub resets the device Host determines if device is capable of high speed (using chirps) Hub establishes a signal path Host requests descriptor from device to determine max packet size Host assigns an address Host learns devices capabilities Host assigns and loads an appropriate device driver (INF file) Device driver selects a configuration
10 IT S ALL DESCRIPTORS AND ENDPOINTS
11 Endpoints The virtual wire for USB communications All endpoints are one way (direction relative to host) Packet fragmentation, handshaking, etc. done by hardware (usually) High bit of address tells direction 1=in 0=out Types of endpoints Control Bulk transport Interrupt Isochronous
12 Control Endpoints Primary mechanism for most devices to communicate with host Every device must have at least one in and out control endpoint EP0 Device must respond to standard requests Get/set address, descriptors, power, and status Device may respond to class specific requests Device may respond to vendor specific requests
13 Control Endpoints (continued) May have up to 3 transport stages: Setup, Data, Status Setup stage Host sends Setup token then data packet containing setup request If device receives a valid setup packet, an ACK is returned Setup request is 8 bytes 1 st byte is bitmap telling type of request & recipient (device, interface, endpoint) Remaining bytes are parameters for request and response Data stage (optional) requested info transmitted Status stage zero length data packet sent as ACK on success
14 Interrupt & Isochronous Endpoints Interrupt endpoints Used to avoid polling and busy waits Keyboards are a good example Usually low speed (allows for longer cables, etc.) Isochronous endpoints Guaranteed bandwidth Used primarily for time-critical apps such as streaming media
15 Bulk Endpoints No latency guarantees Good performance on an idle bus Superseded by all other transport types Full (8-64 byte packets) & high speed (512 byte packets) only Used extensively in USB flash drives (and external hard drives) Transactions consist of a token packet, 0 or more data packets, and an ACK handshake packet (if successful)
16 Descriptors They describe things (duh!) Have a standard format 1 st byte is the length in bytes (so you known when you re done) 2 nd byte determines type of descriptor Remaining bytes are the descriptor itself Common types Device: tells you basic info about the device Configuration: how much power needed, number of interfaces, etc. Interface: How do I talk to the device Endpoint: Direction, type, number, etc. String: Describe something in unicode text
17 Device Descriptor Offset Field Size Value Description 0 blength 1 Number 18 bytes 1 bdescriptortype 1 Constant Device Descriptor (0x01) 2 bcdusb 2 BCD 0x200 4 bdeviceclass 1 Class Class Code 5 bdevicesubclass 1 SubClass Subclass Code 6 bdeviceprotocol 1 Protocol Protocol Code 7 bmaxpacketsize 1 Number Maxi Packet Size EP0 8 idvendor 2 ID Vendor ID 10 idproduct 2 ID Product ID 12 bcddevice 2 BCD Device Release Number 14 imanufacturer 1 Index Index of Manu Descriptor 15 iproduct 1 Index Index of Prod Descriptor 16 iserialnumber 1 Index Index of SN Descriptor 17 bnumconfigurations 1 Integer Num Configurations
18 Configuration Descriptor (header) Offset Field Size Value Description 0 blength 1 Number Size in Bytes 1 bdescriptortype 1 Constant 0x02 2 wtotallength 2 Number Total data returned 4 bnuminterfaces 1 Number Num Interfaces 5 bconfigurationvalue 1 Number Con number 6 iconfiguration 1 Index String Descriptor 7 bmattributes 1 Bitmap b7 Reserved, set to 1. b6 Self Powered b5 Remote Wakeup b4..0 Reserved 0. 8 bmaxpower 1 ma Max Power in ma/2
19 Interface Descriptor Offset Field Size Value Description 0 blength 1 Number 9 Bytes 1 bdescriptortype 1 Constant 0x04 2 binterfacenumber 1 Number Number of Interface 3 balternatesetting 1 Number Alternative setting 4 bnumendpoints 1 Number Number of Endpoints used 5 binterfaceclass 1 Class Class Code 6 binterfacesubclass 1 SubClass Subclass Code 7 binterfaceprotocol 1 Protocol Protocol Code 8 iinterface 1 Index Index of String Descriptor
20 Endpoint Descriptor Offset Field Size Value Description 0 blength 1 Number Size of Descriptor (7 bytes) 1 bdescriptortype 1 Constant Endpoint Descriptor (0x05) 2 bendpointaddress 1 Endpoint b0..3 Endpoint Number. b4..6 Reserved. Set to Zero b7 Direction 0 = Out, 1 = In 3 bmattributes 1 Bitmap b0..1 Transfer Type 10 = Bulk b2..7 are reserved. I 4 wmaxpacketsize 2 Number Maximum Packet Size 6 binterval 1 Number Interval for polling endpoint data
21 String Descriptors Offset Field Size Value Description 0 blength 1 Number Size of Descriptor in Bytes 1 bdescriptortype 1 Constant String Descriptor (0x03) 2 bstring n Unicode Unicode Encoded String Note: String 0 is a special case that lists available languages. Most common is 0x0409 U.S. English
22 Now that we have learned a little about general devices, without further delay BULK-ONLY MASS STORAGE DEVICES
23 USB Flash Drives Hardware Software Filesystems Talk to a flash drive
24 Hardware
25 Hardware (continued) Typically utilize NAND flash memory Memory degrades after 10,000 write cycles Most chips not even close to high-speed USB speed (480 Mbps) Can only be written in blocks (usually 512, 2048, or 4096 bytes) Chips are somewhat easily removed from damaged drives for forensic recovery Some controllers have JTAG capability which can be used for memory access Some controller chips steal some flash memory for themselves
26 Hardware (continued) Nearly all flash drives present themselves as SCSI hard drives Hard drive sectors are typically 512, 2048, or 4096 bytes SCSI transparent command set is used Most drives are formatted as one partition or logical unit Additional logical units can hide info from Windows machines Reported size may not match actual media size Info can be hidden in higher sectors Some cheap drives are out there that grossly over report size A typical 512 byte sector needs 16 bytes for error correction
27 Software Usually implemented in firmware within specialized controller chips Must: Detect communication directed at drive Respond to standard requests Check for errors Manage power Exchange data
28 Filesystems Most preformatted with FAT or FAT32 NTFS TrueFFS ExtremeFFS JFFS YAFFS Various UNIX/Linux file systems
29 Talking to a Flash Drive Bulk-Only Mass Storage (aka BBB) protocol used All communications use bulk endpoints Three phases: CBW, data-transport (optional), CSW Commands sent to drive using a Command Block Wrapper (CBW) CBW contains Command Block (CB) with actual command Nearly all drives use a (reduced) SCSI command set Commands requiring data transport will send/receive on bulk endpoints All transactions are terminated by a Command Status Wrapper (CSW)
30 Command Block Wrapper typedef struct _USB_MSI_CBW { unsigned long dcbwsignature; //0x USBC unsigned long dcbwtag; // associates CBW with CSW response unsigned long dcbwdatatransferlength; // bytes to send or receive unsigned char bcbwflags; // bit 7 0=OUT, 1=IN all others zero unsigned char bcbwlun; // logical unit number (usually zero) unsigned char bcbwcblength; // 3 hi bits zero, rest bytes in CB unsigned char bcbwcb[16]; // the actual command block (>= 6 bytes) } USB_MSI_CBW;
31 Command Block 6-16 bytes depending on command Command is first byte Format Unit Example: typedef struct _CB_FORMAT_UNIT { unsigned char OperationCode; //must be 0x04 unsigned char LUN:3; // logical unit number (usually zero) unsigned char FmtData:1; // if 1, extra parameters follow command unsigned char CmpLst:1; // if 0, partial list of defects, 1, complete unsigned char DefectListFormat:3; //000 = 32-bit LBAs unsigned char VendorSpecific; //vendor specific code unsigned short Interleave; //0x0000 = use vendor default unsigned char Control; } CB_FORMAT_UNIT;
32 Command Block (continued) Read (10) Example: typedef struct _CB_READ10 { unsigned char OperationCode; //must be 0x28 unsigned char RelativeAddress:1; // normally 0 unsigned char Resv:2; unsigned char FUA:1; // 1=force unit access, don't use cache unsigned char DPO:1; // 1=disable page out unsigned char LUN:3; //logical unit number unsigned long LBA; //logical block address (sector number) unsigned char Reserved; unsigned short TransferLength; unsigned char Control; } CB_READ10;
33 Command Block (continued) Some Common SCSI Commands: FORMAT_UNIT=0x4, //required INQUIRY=0x12, //required MODE_SELECT6=0x15, MODE_SELECT10=0x55, MODE_SENSE6=0x1A, MODE_SENSE10=0x5A, READ6=0x08, //required READ10=0x28, //required READ12=0xA8, READ_CAPACITY10=0x25, //required READ_FORMAT_CAPACITIES=0x23, REPORT_LUNS=0xA0, //required REQUEST_SENSE=0x03, //required SEND_DIAGNOSTIC=0x1D, //required START_STOP_UNIT=0x1B, SYNCHRONIZE_CACHE10=0x35, TEST_UNIT_READ=0x00, //required VERIFY10=0x2F, WRITE6=0x0A, //required WRITE10=0x2A, WRITE12=0xAA
34 Command Status Wrapper Read Sense command can be used for details on failed operations typedef struct _USB_MSI_CSW { unsigned long dcswsignature; //0x USBS unsigned long dcswtag; // associate CBW with CSW response unsigned long dcswdataresidue; // difference between requested data and actual unsigned char bcswstatus; //00=pass, 01=fail, 02=phase error, reset } USB_MSI_CSW;
35 Now that we know how bulk-only mass storage devices work HOW DO I BYPASS ENDPOINT SECURITY?
36 Impersonating another device Social engineering USB style Providing an authorized VID/PID allows device connection Backdoors and other useful items can be injected Information can be extracted to portable media Device design allows optional write blocking
37 Enough background. Let the fun begin MICROCONTROLLERS ARE FUN (AND CHEAP)
38 Fun with Microcontrollers Chip Choice A Microcontroller-Based Impersonator
39 Chip Choice Options AVR (as found in Arduino family) Cheap Well understood Loads of code out there Too underpowered to do USB without external components (<20MHz) PIC family Relatively cheap Programming somewhat more involved than AVR Newer chips SMD only, not easy DIP package Some USB device code, but not host code out there
40 Chip Choice Winner None of the above FTDI Vinculum II Relatively new chip A little faster than AVRs (48 MHz) Real-time multi-threaded OS Libraries for several standard USB classes BOMS is one but we can t use it for this project, unfortunately Unlike AVR, different pin packages differ only with GPIO lines available Same flash memory Same RAM
41 Chip Choice FTDI Vinculum II dual USB host/slave controller 2 full-speed USB 2.0 interfaces (host or slave capable) 256 KB E-flash memory 16 KB RAM 2 SPI slave and 1 SPI master interfaces Easy-to-use IDE Simultaneous multiple file access on BOMS devices Several development modules available Convenient for prototyping (only SMD chips available) Cheap enough to embed in final device One format is Arduino clone (Vinco)
42 Chip Choice (continued)
43 Chip Choice (continued)
44 Chip Choice (continued)
45 Chip Choice (continued)
46 Package A - Small & only 4 Pins to Solder* *If you aren t fond of useful information displays, lights and buttons that is.
47 Package B Slightly Larger-No Soldering* *See disclaimer on previous slide.
48 Microcontroller-Based Impersonator Enumerate an attached mass storage drive When PC attempts to connect drive try to provide an authorized VID/PID If unsuccessful try another VID/PID till it works
49 Impersonator High-Level Design One thread associated with slave port to appear as a BOMS device One thread watches control endpoint and services requests from host One thread associated with the host port for talking to flash drive Thread enumerates the device and gets endpoints. Then periodically checks to see if the drive is still there Main thread bridges slave and host Non-CBW packets (data packets) are passed through to host port Whitelisted CBWs are also passed on to host port (if write blocking) Timer thread When enumeration starts timer is set If drive is not connected another VID/PID is tried Button thread Reads buttons and adjusts status accordingly
50 The Main Thread Waits for CBW packets to arrive on Bulk Out endpoint Calls appropriate handler function based on command Whitelisted commands: Forward CBW to drive Perform Data phase (if any) with drive and forward to PC Received CSW from device and forward to PC Non-whitelisted commands (when write blocking): ACK CBW Fake Data phase (if any) Return CSW to PC Some commands return success because Windows is unhappy with failures
51 Main Loop usbslaveboms_readcbw(cbw, slavebomsctx); switch (cbw->cb.formated.command) { case BOMS_INQUIRY: handle_inquiry(cbw); break; }
52 Example Handler void handle_inquiry(boms_cbw_t *cbw) { } unsigned char buffer[64]; unsigned short responsesize; boms_csw_t csw; if (forward_cbw_to_device(cbw)) { } if (responsesize = receive_data_from_device(&buffer[0], 36)) { } forward_data_to_slave(&buffer[0], responsesize); if (receive_csw_from_device(&csw)) { } forward_csw_to_slave(&csw);
53 Timer Thread When device descriptor requested start 1 second timer When the enumeration complete reset timer If timer expires try the next VID/PID from list At end of list could resort to brute force
54 Complications Windows & Linux treat drives differently Windows will try to look for and autoplay media Windows doesn t appear to see other than first LUN Early prototype experience (with writeblocker this is based on) Worked fine under Linux Caused BSoD on Windows (exploit?) Linux seems to pull in a lot of data up front Windows misbehaves if you correctly fail some commands such as Write
55 Endpoint security on Linux Can use udev rules to emulate Windows endpoint security software on Linux Open source provides a great value Better value Equally ineffective, but at a better price
56 And now what you really wanted to see IT S DEMO TIME!
57 Food for thought Speed up process by searching registry for previously mounted devices USBDevView or something similar might be helpful Use larger device to divine authorized device then use a collection of smaller devices preprogrammed to appropriate VID/PID Like all devices this may be thwarted Device operates at full speed only Endpoint software could use proprietary drivers Security through obscurity?
58 References USB Complete: The Developers Guide (4 th ed.) by Jan Axelson USB Mass Storage: Designing and Programming Devices and Embedded Hosts by Jan Axelson for more on VNC2 for SCSI references Embedded USB Design by Example by John Hyde My 44Con USB Flash Drive Forensics Video Schematics and source code are available Git hub usb-impersonator
59 Questions?
Simplified Description of USB Device Enumeration
Future Technology Devices International Ltd. Technical Note TN_113 Simplified Description of USB Device Enumeration Document Reference No.: FT_000180 Issue Date: 2009-10-28 USB Enumeration is the process
AN249 HUMAN INTERFACE DEVICE TUTORIAL. Relevant Devices This application note applies to all Silicon Labs USB MCUs. 1.
HUMAN INTERFACE DEVICE TUTORIAL Relevant Devices This application note applies to all Silicon Labs USB MCUs. 1. Introduction The Human Interface Device (HID) class specification allows designers to create
AN295 USB AUDIO CLASS TUTORIAL. 1. Introduction. 2. USB, Isochronous Transfers, and the Audio Class. 1.1. Overview. 2.1. USB Operational Overview
USB AUDIO CLASS TUTORIAL 1. Introduction Isochronous data transfers can be used by universal serial bus (USB) devices designed to transfer data to or from a host at a constant rate. Systems streaming audio
AN1164. USB CDC Class on an Embedded Device INTRODUCTION ASSUMPTIONS FEATURES LIMITATIONS
USB CDC Class on an Embedded Device AN1164 Author: Bud Caldwell Microchip Technology Inc. INTRODUCTION The Universal Serial Bus (USB) has made it very simple for end users to attach peripheral devices
USB Overview. This course serves as an introduction to USB.
USB Overview This course serves as an introduction to USB. 1 Agenda USB overview USB low level data transfer USB protocol structure USB chapter 9 structure Enumeration Standard classes Firmware example
PL2571 (Chip Rev B) Hi-Speed USB to SATA Bridge Controller Product Datasheet
PL2571 (Chip Rev B) Hi-Speed USB to SATA Bridge Controller Product Datasheet Document Revision: 1.3 Document Release: Prolific Technology Inc. 7F, No. 48, Sec. 3, Nan Kang Rd. Nan Kang, Taipei 115, Taiwan,
Universal Serial Bus Mass Storage Class. Bulk-Only Transport
Universal Serial Bus Mass Storage Class Bulk-Only Transport Revision 1.0 Change History Revision Issue Date Comments 0.7 September 23, 1998 Initial draft, pre-release 0.8 October 6, 1998 Revisions made
AVR32807: Getting Started with the AVR UC3 Software Framework USB Classes. 32-bit Microcontrollers. Application Note. Features.
AVR32807: Getting Started with the AVR UC3 Software Framework USB Classes Features Full Speed (12Mbit/s) and High Speed (480Mbit/s) data rates Control, Bulk, Isochronuous and Interrupt transfer types Device
Universal Serial Bus Device Class Definition for Printing Devices
Universal Serial Bus Device Class Definition for Printing Devices Version 1.1 January 2000 Contributors Axiohn IPB Kevin Butler [email protected] Canon Sadahiko Sano [email protected] Canon Naoki
SMART Modular Small Form Factor USB Key
SMART Modular Small Form Factor USB Key SH9MKxxGQxx Rev E www.smartm.com REVISION HISTORY Date Revision Section(s) Description June 2014 A All Initial release October 2014 B 1.4.1, 1.4.2, 2.2, 4.2, 4.4,
PL-2303HX Edition (Chip Rev A) USB to Serial Bridge Controller Product Datasheet
PL-2303HX Edition (Chip Rev A) USB to Serial Bridge Controller Product Datasheet Document Revision: 1.6 Document Release: Prolific Technology Inc. 7F, No. 48, Sec. 3, Nan Kang Rd. Nan Kang, Taipei 115,
Exploiting USB Devices with Arduino. Greg Ose [email protected] Black Hat USA 2011
Exploiting USB Devices with Arduino Greg Ose [email protected] Black Hat USA 2011 Abstract Hardware devices are continually relied upon to maintain a bridge between physical and virtual security. From
TivaWare USB Library USER S GUIDE SW-TM4C-USBL-UG-2.1.1.71. Copyright 2008-2015 Texas Instruments Incorporated
TivaWare USB Library USER S GUIDE SW-TM4C-USBL-UG-2.1.1.71 Copyright 2008-2015 Texas Instruments Incorporated Copyright Copyright 2008-2015 Texas Instruments Incorporated. All rights reserved. Tiva and
Learning USB by Doing. [email protected]
Learning USB by Doing. [email protected] The question that I am asked most often is how do I start a USB project? There are many alternate starting points for the design of a USB I/O device and this
A Development Platform for Microcontroller STM32F103
MEE09:49 A Development Platform for Microcontroller STM32F103 This thesis is presented as part of Degree of Master of Science in Electrical Engineering Blekinge Institute of Technology March 2009 By: Ehsan
Real-time Operating Systems Lecture 27.1
Real-time Operating Systems Lecture 27.1 14.7. Universal Serial Bus () General References http://www.usb.org. http://www.beyondlogic.org/usbnutshell/ References http://www.ftdichip.com/documents/programguides/d2xxpg34.pdf
Implementing SPI Master and Slave Functionality Using the Z8 Encore! F083A
Application Note Implementing SPI Master and Slave Functionality Using the Z8 Encore! F083A AN026701-0308 Abstract This application note demonstrates a method of implementing the Serial Peripheral Interface
Bluetooth HC-06 with serial port module Easy guide
1 Bluetooth HC-06 with serial port module Easy guide This manual consists of 3 parts: PART 1. Overview of Bluetooth HC-06 module with serial port. PART 2. Installing Bluetooth HC-06 module with Bolt 18F2550
Data Transfer between Two USB Flash SCSI Disks using a Touch Screen
Data Transfer between Two USB Flash SCSI Disks using a Touch Screen Anurag A. Chakravorty #1, Raghwendra J. Suryawanshi *2, # Bachelor of Engineering, Department of Information Technology, Matsyodari Shikshan
Atmel AVR4950: ASF - USB Host Stack. 8-bit Atmel Microcontrollers. Application Note. Features. 1 Introduction
Atmel AVR4950: ASF - USB Host Stack Features USB 2.0 compliance - Chapter 9 - Control, Bulk, Isochronous and Interrupt transfer types - Low Speed (1.5Mbit/s), Full Speed (12Mbit/s), High Speed (480Mbit/s)
Application Note. 8-bit Microcontrollers. AVR276: USB Software Library for AT90USBxxx Microcontrollers
: USB Software Library for AT90USBxxx Microcontrollers Features Low Speed (1.5Mbit/s) and Full Speed (12Mbit/s) data rates Control, Bulk, Isochronuous and Interrupt transfer types Up to 6 data endpoints/pipes
Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs
Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs AN033101-0412 Abstract This describes how to interface the Dallas 1-Wire bus with Zilog s Z8F1680 Series of MCUs as master devices. The Z8F0880,
UMBC. ISA is the oldest of all these and today s computers still have a ISA bus interface. in form of an ISA slot (connection) on the main board.
Bus Interfaces Different types of buses: ISA (Industry Standard Architecture) EISA (Extended ISA) VESA (Video Electronics Standards Association, VL Bus) PCI (Periheral Component Interconnect) USB (Universal
In-System Programmer USER MANUAL RN-ISP-UM RN-WIFLYCR-UM-.01. www.rovingnetworks.com 1
RN-WIFLYCR-UM-.01 RN-ISP-UM In-System Programmer 2012 Roving Networks. All rights reserved. Version 1.1 1/19/2012 USER MANUAL www.rovingnetworks.com 1 OVERVIEW You use Roving Networks In-System-Programmer
Computer Systems Structure Input/Output
Computer Systems Structure Input/Output Peripherals Computer Central Processing Unit Main Memory Computer Systems Interconnection Communication lines Input Output Ward 1 Ward 2 Examples of I/O Devices
Controlling EIB/KNX Devices from Linux using USB. Heinz W. Werntges. University of Applied Sciences Wiesbaden. Jens Neumann and Vladimir Vinarski
Fachhochschule Wiesbaden - Controlling EIB/KNX Devices from Linux using USB Heinz W. Werntges University of Applied Sciences Wiesbaden Jens Neumann and Vladimir Vinarski Loewe Opta GmbH, Kompetenzzentrum
Determining USB Peripheral Device Class
Future Technology Devices International Ltd. Application Note AN_174 Determining USB Peripheral Device Class Document Reference No.: FT_000447 Issue Date: 2011-05-23 This document will demonstrate how
Application Note. 8-bit Microcontrollers. AVR270: USB Mouse Demonstration
AVR270: USB Mouse Demonstration Features Runs with AT90USB Microcontrollers at 8MHz USB Low Power Bus Powered Device (less then 100mA) Supported by any PC running Windows (98SE or later), Linux or Mac
An Analysis of Wireless Device Implementations on Universal Serial Bus
An Analysis of Wireless Device Implementations on Universal Serial Bus 6/3/97 Abstract Universal Serial Bus (USB) is a new personal computer (PC) interconnect that can support simultaneous attachment of
Data Sheet. Adaptive Design ltd. Arduino Dual L6470 Stepper Motor Shield V1.0. 20 th November 2012. L6470 Stepper Motor Shield
Arduino Dual L6470 Stepper Motor Shield Data Sheet Adaptive Design ltd V1.0 20 th November 2012 Adaptive Design ltd. Page 1 General Description The Arduino stepper motor shield is based on L6470 microstepping
USBSPYDER08 Discovery Kit for Freescale MC9RS08KA, MC9S08QD and MC9S08QG Microcontrollers User s Manual
USBSPYDER08 Discovery Kit for Freescale MC9RS08KA, MC9S08QD and MC9S08QG Microcontrollers User s Manual Copyright 2007 SofTec Microsystems DC01197 We want your feedback! SofTec Microsystems is always on
Pen Drive to Pen Drive and Mobile Data Transfer Using ARM
IOSR Journal of Electronics and Communication Engineering (IOSR-JECE) ISSN: 2278-2834, ISBN: 2278-8735, PP: 43-47 www.iosrjournals.org Pen Drive to Pen Drive and Mobile Data Transfer Using ARM 1 Mr.V.S.Gawali,
Design Considerations for USB Mass Storage
Design Considerations for USB Mass Storage Steve Kolokowsky Cypress Semiconductor [email protected] June 12, 2002 2 Mass Storage The Killer App June 12, 2002 3 Outline Mass Storage Class Bridge Selection
A Design of Video Acquisition and Transmission Based on ARM. Ziqiang Hao a, Hongzuo Li b
A Design of Video Acquisition and Transmission Based on ARM Ziqiang Hao a, Hongzuo Li b Changchun University of Science & Technology, Changchun, Jilin, China a [email protected], b [email protected] Keywords:video
SX-3000EDM Integration Guide
SX-3000EDM Integration Guide SX-3000EDM Integration Guide PN: 140-20116-110 Rev. A 1 Table of Contents SX-3000EDM Integration Guide Product Overview... 3 Introduction... 3 Features... 4 Block Diagram...
What is LOG Storm and what is it useful for?
What is LOG Storm and what is it useful for? LOG Storm is a high-speed digital data logger used for recording and analyzing the activity from embedded electronic systems digital bus and data lines. It
MeshBee Open Source ZigBee RF Module CookBook
MeshBee Open Source ZigBee RF Module CookBook 2014 Seeed Technology Inc. www.seeedstudio.com 1 Doc Version Date Author Remark v0.1 2014/05/07 Created 2 Table of contents Table of contents Chapter 1: Getting
USB in a Nutshell. Making Sense of the USB Standard.
USB in a Nutshell. Making Sense of the USB Standard. Starting out new with USB can be quite daunting. With the USB 2.0 specification at 650 pages one could easily be put off just by the sheer size of the
Design Considerations in Adding USB Communications to Embedded Applications
Design Considerations in Adding USB Communications to Embedded Applications Designing universal serial bus (USB) communications into an application enables a system to communicate with a variety of USB
The Programming Interface
: In-System Programming Features Program any AVR MCU In-System Reprogram both data Flash and parameter EEPROM memories Eliminate sockets Simple -wire SPI programming interface Introduction In-System programming
The I2C Bus. NXP Semiconductors: UM10204 I2C-bus specification and user manual. 14.10.2010 HAW - Arduino 1
The I2C Bus Introduction The I2C-bus is a de facto world standard that is now implemented in over 1000 different ICs manufactured by more than 50 companies. Additionally, the versatile I2C-bus is used
Freescale MQX RTOS USB Host User s Guide
Freescale MQX RTOS USB Host User s Guide MQXUSBHOSTUG Rev. 7 08/2014 How to Reach Us: Home Page: freescale.com Web Support: freescale.com/support Information in this document is provided solely to enable
Freescale MQX USB Device User Guide
Freescale MQX USB Device User Guide MQXUSBDEVUG Rev. 4 02/2014 How to Reach Us: Home Page: freescale.com Web Support: freescale.com/support Information in this document is provided solely to enable system
The Bus (PCI and PCI-Express)
4 Jan, 2008 The Bus (PCI and PCI-Express) The CPU, memory, disks, and all the other devices in a computer have to be able to communicate and exchange data. The technology that connects them is called the
DKWF121 WF121-A 802.11 B/G/N MODULE EVALUATION BOARD
DKWF121 WF121-A 802.11 B/G/N MODULE EVALUATION BOARD PRELIMINARY DATA SHEET Wednesday, 16 May 2012 Version 0.5 Copyright 2000-2012 Bluegiga Technologies All rights reserved. Bluegiga Technologies assumes
RN-131-PICTAIL & RN-171-PICTAIL Evaluation Boards
RN-131-PICTAIL & RN-171-PICTAIL Evaluation Boards 2012 Roving Networks. All rights reserved. Version 1.0 9/7/2012 USER MANUAL OVERVIEW The RN-131 and RN-171 WiFly radio modules are complete, standalone
Ways to Use USB in Embedded Systems
Ways to Use USB in Embedded Systems by Yingbo Hu, R&D Embedded Engineer and Ralph Moore, President of Micro Digital Universal Serial Bus (USB) is a connectivity specification that provides ease of use,
Useful USB Gadgets on Linux
Useful USB Gadgets on Linux February, 2012 Gary Bisson Adeneo Embedded Embedded Linux Conference 2012 1 Agenda Introduction to USB USB Gadget API Existing Gadgets Design your own Gadget Demo Conclusion
Microcontroller Based Low Cost Portable PC Mouse and Keyboard Tester
Leonardo Journal of Sciences ISSN 1583-0233 Issue 20, January-June 2012 p. 31-36 Microcontroller Based Low Cost Portable PC Mouse and Keyboard Tester Ganesh Sunil NHIVEKAR *, and Ravidra Ramchandra MUDHOLKAR
How To Add A Usb Secondary Ipo Bootloader To An Lpc23Xx Flash Device To A Flash Device
Rev. 01 16 October 2008 Application note Document information Info Keywords Abstract Content LPC23xx, Secondary ISP Bootloader, Bootloader, USB This application note describes how to add custom USB secondary
OTi. Ours Technology Inc. OTi-6828 FLASH DISK CONTROLLER. Description. Features
Description The flash disk controller (OTi_6828) is a disk controller used to make a linear flash device array look likes a normal disk, hiding the flash related problems with erasing. The OTi_6828 is
Serial Communications
April 2014 7 Serial Communications Objectives - To be familiar with the USART (RS-232) protocol. - To be able to transfer data from PIC-PC, PC-PIC and PIC-PIC. - To test serial communications with virtual
M68EVB908QL4 Development Board for Motorola MC68HC908QL4
M68EVB908QL4 Development Board for Motorola MC68HC908QL4! Axiom Manufacturing 2813 Industrial Lane Garland, TX 75041 Email: [email protected] Web: http://www.axman.com! CONTENTS CAUTIONARY NOTES...3 TERMINOLOGY...3
Production Flash Programming Best Practices for Kinetis K- and L-series MCUs
Freescale Semiconductor Document Number:AN4835 Application Note Rev 1, 05/2014 Production Flash Programming Best Practices for Kinetis K- and L-series MCUs by: Melissa Hunter 1 Introduction This application
Software User Guide UG-461
Software User Guide UG-461 One Technology Way P.O. Box 9106 Norwood, MA 02062-9106, U.S.A. Tel: 781.329.4700 Fax: 781.461.3113 www.analog.com ezlinx icoupler Isolated Interface Development Environment
AT91 ARM Thumb Microcontrollers. Application Note. AT91 USB CDC Driver Implementation. 1. Introduction. 2. Related Documents
AT91 USB CDC Driver Implementation 1. Introduction The Communication Device Class (CDC) is a general-purpose way to enable all types of communications on the Universal Serial Bus (USB). This class makes
Fondamenti su strumenti di sviluppo per microcontrollori PIC
Fondamenti su strumenti di sviluppo per microcontrollori PIC MPSIM ICE 2000 ICD 2 REAL ICE PICSTART Ad uso interno del corso Elettronica e Telecomunicazioni 1 2 MPLAB SIM /1 MPLAB SIM is a discrete-event
SPI I2C LIN Ethernet. u Today: Wired embedded networks. u Next lecture: CAN bus u Then: 802.15.4 wireless embedded network
u Today: Wired embedded networks Ø Characteristics and requirements Ø Some embedded LANs SPI I2C LIN Ethernet u Next lecture: CAN bus u Then: 802.15.4 wireless embedded network Network from a High End
AVR287: USB Host HID and Mass Storage Demonstration. 8-bit Microcontrollers. Application Note. Features. 1 Introduction
AVR287: USB Host HID and Mass Storage Demonstration Features Based on AVR USB OTG Reduced Host Runs on AT90USB647/1287 Support bootable/non-bootable standard USB mouse Support USB Hub feature (Mass Storage
USER GUIDE EDBG. Description
USER GUIDE EDBG Description The Atmel Embedded Debugger (EDBG) is an onboard debugger for integration into development kits with Atmel MCUs. In addition to programming and debugging support through Atmel
Future Technology Devices International Ltd
Future Technology Devices International Ltd Datasheet UMFT200XD Breakout Modules 1 Introduction UMFT200XD is a USB to I 2 C breakout module The UMFT200XD breakout module utilizes FTDI s FT200XQ IC to convert
Project 4: Pseudo USB Simulation Introduction to UNIVERSAL SERIAL BUS (USB) STANDARD
Project 4: Pseudo USB Simulation Introduction to UNIVERSAL SERIAL BUS (USB) STANDARD The Universal Serial Bus is a fast, bi-directional, low cost, dynamically attachable serial interface. The motivation
C8051F020 Utilization in an Embedded Digital Design Project Course. Daren R. Wilcox Southern Polytechnic State University Marietta, Georgia
C8051F020 Utilization in an Embedded Digital Design Project Course Daren R. Wilcox Southern Polytechnic State University Marietta, Georgia Abstract In this paper, the utilization of the C8051F020 in an
i.mx USB loader A white paper by Tristan Lelong
i.mx USB loader A white paper by Tristan Lelong Introduction This document aims to explain the serial downloader feature of i.mx SoCs on Linux (available across i.mx family starting with i.mx23). This
Evo Laser Firmware Developer s Manual
Evo Laser Firmware Developer s Manual Table of Content Chapter 1 Introduction Chapter 2 Hardware Overview and Subsystems 2.1 Overview 2.2 Evo Laser Hardware Core System 2.3 Evo Laser Smartport TM Chapter
USB OTG and Embedded Host. 2008 Microchip Technology Incorporated. All Rights Reserved. Slide 1
USB OTG and Embedded Host 2008 Microchip Technology Incorporated. All Rights Reserved. Slide 1 Topics Nomenclature USB Universe USB OTG versus Embedded Host USB Embedded Host USB On-The-Go USB OTG Device
Lab Experiment 1: The LPC 2148 Education Board
Lab Experiment 1: The LPC 2148 Education Board 1 Introduction The aim of this course ECE 425L is to help you understand and utilize the functionalities of ARM7TDMI LPC2148 microcontroller. To do that,
SAN Conceptual and Design Basics
TECHNICAL NOTE VMware Infrastructure 3 SAN Conceptual and Design Basics VMware ESX Server can be used in conjunction with a SAN (storage area network), a specialized high speed network that connects computer
Nitrogen D2 16-Bit Stereo USB Audio Controller. Datasheet Version 1.02
The Best USB Audio Single Chip for Stereo Digital Adaptor Application Nitrogen D2 16-Bit Stereo USB Audio Controller (Dolby Digital Live and DTS Interactive Software Technology Bundle) Datasheet Version
Single channel data transceiver module WIZ2-434
Single channel data transceiver module WIZ2-434 Available models: WIZ2-434-RS: data input by RS232 (±12V) logic, 9-15V supply WIZ2-434-RSB: same as above, but in a plastic shell. The WIZ2-434-x modules
Communication Protocol
Analysis of the NXT Bluetooth Communication Protocol By Sivan Toledo September 2006 The NXT supports Bluetooth communication between a program running on the NXT and a program running on some other Bluetooth
TURBO PROGRAMMER USB, MMC, SIM DEVELOPMENT KIT
TURBO PROGRAMMER USB, MMC, SIM DEVELOPMENT KIT HARDWARE GUIDE This document is part of Turbo Programmer documentation. For Developer Documentation, Applications and Examples, see http:/// PRELIMINARY (C)
USB to RS-422/485 Serial Adapter
USB to RS-422/485 Serial Adapter User Manual Ver. 2.00 All brand names and trademarks are properties of their respective owners. Contents: Chapter 1: Introduction... 3 1.1 Product Introduction... 3 1.2
USB ENGINEERING CHANGE NOTICE
USB ENGINEERING CHANGE NOTICE Title: Interface Association Descriptors Applies to: Universal Serial Bus Specification, Revision 2.0 Summary of ECN This ECN defines a new standard descriptor and interface
MSP430 USB Communications Device Class (CDC) API User s Guide, v0.7
September 2008 MSP430 USB Communications Device Class (CDC) API User s Guide, v0.7 MSP430 Contents 1 Introduction...3 2 Operation...3 2.1 System...3 2.2 Stack Organization...4 2.3 Source File Organization...5
Bluetooth + USB 16 Servo Controller [RKI-1005 & RKI-1205]
Bluetooth + USB 16 Servo Controller [RKI-1005 & RKI-1205] Users Manual Robokits India [email protected] http://www.robokitsworld.com Page 1 Bluetooth + USB 16 Servo Controller is used to control up to
STM32F102xx and STM32F103xx series Microcontrollers
User manual STM32 USB-FS-Device development kit Introduction The STM32 USB-FS-Device development kit is a complete firmware and software package including examples and demos for all USB transfer types
RN-XV-RD2 Evaluation Board
RN-XV-RD2 Evaluation Board 2012 Roving Networks. All rights reserved. -1.01Version 1.0 9/28/2012 USER MANUAL OVERVIEW This document describes the hardware and software setup for Roving Networks RN-XV-RD2
CP2110-EK CP2110 EVALUATION KIT USER S GUIDE. 1. Kit Contents. 2. Relevant Documentation. 3. Software Setup
CP2110 EVALUATION KIT USER S GUIDE 1. Kit Contents The CP2110 Evaluation Kit contains the following items: CP2110 Evaluation Board RS232 Serial Cable USB Cable DVD Quick Start Guide 2. Relevant Documentation
UM1734 User manual. STM32Cube USB device library. Introduction
User manual STM32Cube USB device library Introduction STMCube initiative was originated by STMicroelectronics to ease developers life by reducing development efforts, time and cost. STM32Cube covers STM32
Linux Driver Devices. Why, When, Which, How?
Bertrand Mermet Sylvain Ract Linux Driver Devices. Why, When, Which, How? Since its creation in the early 1990 s Linux has been installed on millions of computers or embedded systems. These systems may
Do More With Less. On Driver-less Interfacing with Embedded Devices. Peter Korsgaard <[email protected]>
Do More With Less On Driver-less Interfacing with Embedded Devices Peter Korsgaard NSLU2-Linux Peter Korsgaard Driver-less Interfacing? Interfacing without having to install any custom
Elettronica dei Sistemi Digitali Costantino Giaconia SERIAL I/O COMMON PROTOCOLS
SERIAL I/O COMMON PROTOCOLS RS-232 Fundamentals What is RS-232 RS-232 is a popular communications interface for connecting modems and data acquisition devices (i.e. GPS receivers, electronic balances,
Arduino Due Back. Warning: Unlike other Arduino boards, the Arduino Due board runs at 3.3V. The maximum. Overview
R Arduino Due Arduino Due Front Arduino Due Back Overview The Arduino Due is a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU (datasheet). It is the first Arduino board based on a 32-bit
IRON-HID: Create your own bad USB. Seunghun Han
IRON-HID: Create your own bad USB Seunghun Han Who am I? Security researcher at NSR (National Security Research Institute of South Korea) Operating system and firmware developer Author of the book series
Camera Sensor Driver Development And Integration
Camera Sensor Driver Development And Integration Introduction Camera enables multimedia on phones. It is going to be an important human machine interface, adding to augmented reality possibilities on embedded
Chapter 5 Cubix XP4 Blade Server
Chapter 5 Cubix XP4 Blade Server Introduction Cubix designed the XP4 Blade Server to fit inside a BladeStation enclosure. The Blade Server features one or two Intel Pentium 4 Xeon processors, the Intel
Chapter 6. 6.1 Introduction. Storage and Other I/O Topics. p. 570( 頁 585) Fig. 6.1. I/O devices can be characterized by. I/O bus connections
Chapter 6 Storage and Other I/O Topics 6.1 Introduction I/O devices can be characterized by Behavior: input, output, storage Partner: human or machine Data rate: bytes/sec, transfers/sec I/O bus connections
USB HID SURESWIPE & USB HID SWIPE READER TECHNICAL REFERENCE MANUAL
USB HID SURESWIPE & USB HID SWIPE READER TECHNICAL REFERENCE MANUAL Manual Part Number 99875191 Rev 13 JANUARY 2012 REGISTERED TO ISO 9001:2008 1710 Apollo Court Seal Beach, CA 90740 Phone: (562) 546-6400
ABACOM - netpio. http://www.abacom-online.de/div/setup_netpio.exe
ABACOM - netpio Download http://www.abacom-online.de/div/setup_netpio.exe The ABACOM netpio board is a 10Mbit network interface designed for measurement and control applications. The board is available
Application Note AN_185. Vinculum-II UART to USB HID Class Host Bridge
AN_185 Vinculum-II UART to USB HID Class Host Bridge Issue Date: 2011-11-02 This application note forms part of a series of application notes detailing the new simplified ROM images for VNC2. It will detail
Introducing AVR Dragon
Introducing AVR Dragon ' Front Side Back Side With the AVR Dragon, Atmel has set a new standard for low cost development tools. AVR Dragon supports all programming modes for the Atmel AVR device family.
Wireless ATA: A New Data Transport Protocol for Wireless Storage
Wireless ATA: A New Data Transport Protocol for Wireless Storage Serdar Ozler and Ibrahim Korpeoglu Department of Computer Engineering, Bilkent University, 06800 Bilkent, Ankara, Turkey {ozler, korpe}@cs.bilkent.edu.tr
Arduino ADK Back. For information on using the board with the Android OS, see Google's ADK documentation.
Arduino ADK Arduino ADK R3 Front Arduino ADK R3 Back Arduino ADK Front Arduino ADK Back Overview The Arduino ADK is a microcontroller board based on the ATmega2560 (datasheet). It has a USB host interface
Embedded Systems Design Course Applying the mbed microcontroller
Embedded Systems Design Course Applying the mbed microcontroller Serial communications with SPI These course notes are written by R.Toulson (Anglia Ruskin University) and T.Wilmshurst (University of Derby).
Embedded Software Development: Spottbillige Hardware + OSS = Zum Spielen zu Schade!
Embedded Software Development: Spottbillige Hardware + OSS = Zum Spielen zu Schade! Gregor Hohpe www.eaipatterns.com OOP 2012 1 Microcontrollers CPU core, memory, and I/O (analog, digital) on one chip
Computer Organization & Architecture Lecture #19
Computer Organization & Architecture Lecture #19 Input/Output The computer system s I/O architecture is its interface to the outside world. This architecture is designed to provide a systematic means of
AVR115: Data Logging with Atmel File System on ATmega32U4. Microcontrollers. Application Note. 1 Introduction. Atmel
AVR115: Data Logging with Atmel File System on ATmega32U4 Microcontrollers 01101010 11010101 01010111 10010101 Application Note 1 Introduction Atmel provides a File System management for AT90USBx and ATmegaxxUx
www.dragino.com Yun Shield Quick Start Guide VERSION: 1.0 Version Description Date 1.0 Release 2014-Jul-08 Yun Shield Quick Start Guide 1 / 14
Yun Shield Quick Start Guide VERSION: 1.0 Version Description Date 1.0 Release 2014-Jul-08 Yun Shield Quick Start Guide 1 / 14 Index: 1 Introduction... 3 1.1 About this quick start guide... 3 1.2 What
