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.