10.09.2016 Views

Hacking_and_Penetration_Testing_with_Low_Power_Devices

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

20 CHAPTER 2 Meet the beagles<br />

Another plus for the BeagleBone over the Arduino is support for USB. A USB<br />

hub on BeagleBone allows multiple USB devices to use a single cable. When connected<br />

to a PC, the BeagleBone presents itself as a serial debug port, a JTAG port,<br />

<strong>and</strong> a USB0 port, which is directly connected to the processor. A single USB host<br />

port is provided that can supply up to 500 mA at 5 V when the BeagleBone is powered<br />

by a DC power supply. When the BeagleBone is powered by USB, only lowpower<br />

devices, such as keyboards <strong>and</strong> mice, should be plugged into the USB<br />

host port.<br />

Like the BeagleBoard-xM, the BeagleBone features a microSD socket. The<br />

microSD is used to store the operating system <strong>and</strong> other files as the BeagleBone<br />

has no built-in storage. Access is 4 bits (st<strong>and</strong>ard for SD cards). The BeagleBone<br />

supports st<strong>and</strong>ard 3.3 V microSD cards including high-capacity cards. While the<br />

Arduino does not have built-in support for SD storage, a number of shields are available<br />

to provide this support if you don’t mind giving up several GPIO lines.<br />

Another advantage of the BeagleBone over the Arduino is built-in fast Ethernet.<br />

Unlike the BeagleBoard-xM, Ethernet is supported <strong>with</strong> a dedicated networking<br />

chip, not one that also does USB. The chip used is a SMSC LAN8710A. Because<br />

of this difference, the BeagleBone reports a consistent MAC address <strong>and</strong> will likely<br />

be assigned the same address on each boot when connected to networks<br />

utilizing DHCP.<br />

Expansion capes are attached to the BeagleBone via two 46-pin headers. Up to<br />

four stackable capes may be used at once provided they don’t interfere <strong>with</strong> each<br />

other. It is hard to imagine a project that the BeagleBone can’t h<strong>and</strong>le. There are<br />

up to 66 GPIO pins available (compared to only 14 on the Arduino). It is important<br />

to note that GPIO pins on the BeagleBone are 3.3 V, not 5 V. A full LCD touchscreen<br />

<strong>with</strong> backlight is supported. An additional SD/MMC card can be connected to the<br />

BeagleBone via processor pins, which are exposed to the expansion headers.<br />

There are two common st<strong>and</strong>ards for connecting peripherals to embedded electronics:<br />

SPI <strong>and</strong> I2C. Both of these st<strong>and</strong>ards are supported by the BeagleBone. There<br />

are two SPI <strong>and</strong> two I2C connections. Each of these connections supports multiple<br />

devices. The second I2C interface must be used <strong>with</strong> care as it is used by the BeagleBone<br />

to identify <strong>and</strong> configure capes (more detail on this is forthcoming). The<br />

Arduino supports one SPI <strong>and</strong> one I2C connection.<br />

Four serial ports are available via the expansion headers. One of these serial<br />

ports will be used to connect the IEEE 802.15.4 radios used in our remote hacking<br />

drones. The BeagleBone also supports two CAN buses. The fairly low-speed, but<br />

reliable CAN protocol is commonly used in automobiles but may be found in other<br />

contexts.<br />

Timers, analogue to digital converters (ADCs), <strong>and</strong> pulse width modulation<br />

(PWM) round out the BeagleBone’s expansion capabilities. Four time outputs are<br />

exported to the expansion headers. These timers can be very useful for periodic tasks<br />

or for restarting components on a cape. Seven analogue to digital conversion (ADC)<br />

channels capable of making up to 100,000 measurements per second are provided.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!