While it is in theory possible to use the E100 as a peripheral USB Gadget device, the capability is not available at this time. Currently, there are no immediate plans to implement functionality on the E100 to act as a peripheral device.

If you plug devices directly to the E1x0 they should be high-speed USB 2.0 if you would like to connect other USB devices then you should use a powered USB 2.0 high speed. If you're using a USB device which would need to get powered over USB (e.g. thumbdrive) you should be using a powered USB 2.0 hub or the device won't function properly.

Any program that provides a standard serial terminal can be used to talk to the E100. Common options are Minicom and GNU Screen. Both options are commonly available in typical Linux distributions and package management repositories.

The E100 serial parameters are:

Baud Rate: 115200

Data: 8-bit

Parity: None

Stop: 1-bit

Flow Control: None

Using a typical USB cable with Standard-A to Mini-B connectors, plug the large end of the cable into the PC and the small end of the cable into the "CONSOLE" port on the E100. Assuming you are on a Linux workstation, the kernel will assign the USB device a file address. The address can be found by running dmesg.

$ dmesg

If you just plugged in your E100, at the bottom of the output you should find something like:

The important part to pay attention to the last line that says "... now attached to ttyUSB0". 'ttyUSB0' is now the device address in your filesystem. Assuming the device is at ttyUSB0, use the following command to connect to your device using screen program.

$ sudo screen /dev/ttyUSB0 115200,cs8,-ixon,-ixoff

When you power on your E100, you should immediately see the console output in your screen. Once the device has finished booted, you should see a login prompt:

The E100 runs the SSH daemon by default, and simply using SSH with the device IP address is the preferred mode of communication if you aren't doing pre-kernel-load (boot-time) hacking. For this, the serial console is required.

The E100 uses DHCP. Once the device powers up - give it a minute to finish booting - then check the connected router or DHCP server's IP address records - the device and assigned IP address should be added. Once you have the IP address, SSH into it with the information in the section below this one about login information.

# ssh root@192.168.10.2

Alternatively, the IP address can be obtained by connecting through the serial console and running ifconfig.

For many users and applications, the E100 is a fully functional device using only a serial cable, network cable, or operating in standalone mode with no connectivity cables at all. For other use cases, accessories can be attached to the front panel of the E100.

In order to connect peripherals (e.g., a keyboard and mouse) to the E1XX, you will need a powered USB hub. Connect the upstream host port of the hub to the "USB HOST" port using a Mini-A connector. Connect the peripherals to the downstream ports on the hub.

Please note that the E100 cannot be used as peripheral device like the USRP1. Do not connect the "USB HOST" port to a downstream port on a host computer as damage to the device may result.

Here is a list of parts you need in addition to your E1XX (and the power supply, obviously) to have a 'fully operating' setup (i.e., be able to use all of its features):

RF Bulkhead Cables (included with E1XX)

USB-ADP Adapter Cable (included with E1XX)

Daughterboard (Available from Ettus Order Page)

Antenna (Available from Ettus Order Page)

Ethernet CAT-5e Cable (Available from Ettus Order Page)

USB to Mini-B cord (needed for the USB serial console)

USB Hub with External Power Source & Mini-A connector

USB Keyboard

USB Mouse

HDMI/DVI-D cable

Externally-Powered Speakers

Microphone

See the pictures at this link for examples of how to setup your E100: E100 Examples

We provide two methods with which you can re-create our master images for E1xx SD Cards:

A 'build directory' with a 'make' script. These files are contained in a tarball: e1xx-xxx-make.tar.bz2

An exact image of our master SD Card. This image is distributed as a compressed image: e1xx-xxx.bin.bz2

As a general rule, the first option is the best choice. The second option requires that you have an SD Card that is the exact same size as the SD Card with which we made the master image. This can be difficult, because even SD Cards that are sold as the same size, made by the same company, can actually be different sizes - sometimes by hundreds of bytes. This obviously affects a 'byte-for-byte' copy of cards, as there could be too little space on the card you are copying to.

Option 1 (Preferred): Using the Build DirectoryFirst, head to the Ettus E1xx Files Directory , and select the directory for the version/revision of image you want to create. Download the e1xx-xxx-make.tar.bz2 file for that version.

Now, de-compress and untar this directory:

$ tar jxvf e1xx-xxx-make.tar.bz2

You should now have a directory 'e1xx-xxx' with all of the files you need to create a copy of our master image. Insert the target SD Card into your favorite device for mounting micro SD cards in your PC (we assume a Linux PC here).

If the partitions automount, umount them (do not "safely remove the hardware"). You can do this by using the 'umount' command for each partition that was mounted.

$ sudo umount /path/to/mount/point/partition

Now, you will want to figure out what the device node is for the SD Card on your PC. You can do this with 'fdisk':

$ sudo fdisk -l

You should see the SD Card near the bottom (probably), and the partitons will have a titles like /dev/sdb1 and /dev/sdb2. From now on, these instructions will presume that the device node is '/dev/sdb'.

Now, we will use the 'MakeEttusSDCard.sh' script to create the card. Note that this script will work with any size SD Card, takes care of partitioning the card for you, creating the boot partition with the proper files, and then populating the root filesystem. Notice that for this command, we are not passing in partitions for the SD Card, but the entire device node itself. Run:

$ sudo ./MakeEttusSDCard.sh /dev/sdb

NOTE: In some Linux distributions the 'MakeEttusSDCard.sh' script will generate an SD image that won't boot, in this case use the 'MakeEttusSDCard.legacy.sh' script instead.

This process will take a significant amount of time, and will generate a lot of output as it populates the root filesystem. Once the process is finished, you should see a message that reports success!

Congratulations, you now have an exact replica of our master image!

Option 2: Burn Our Master Image

First, head to the Ettus E1xx Files Directory , and select the directory for the version/revision of image you want to create. Download the e1xx-xxx.bin.bz2 file for the version you wish to create.

Now, you'll need to de-compress the image:

$ bunzip2 e1xx-xxx.bin.bz2

Now, follow the instructions in the section "How do I burn an image to a microSD Card?" of this FAQ for burning this image (the .bin file) to an SD Card.

The easiest way to make a backup of the image is to create a 'byte-for-byte' copy of the card. This process will literally read every byte off of the card, and store it into an exact image of the card itself. Thus, the image will be the exact size of the card (in bytes).

Remove the micro SD card from the E100 and insert it into your favorite device for mounting micro SD cards in your PC (we assume a Linux PC here).

If the partitions automount, umount them (do not "safely remove the hardware").

Now, you will want to figure out what the device node is for the SD Card on your PC. You can do this with 'fdisk':

$ sudo fdisk -l

You should see the SD Card near the bottom (probably), and the partitons will have a titles like /dev/sdb1 and /dev/sdb2 (for the boot and root partitions, respectively). From now on, these instructions will presume that the device node is '/dev/sdb'.

Now, you need to use the 'dd' command to make a copy of that device node. Notice that we are not passing in partitions, but the entire device node itself. Run:

$ sudo dd bs=1024 if=/dev/sdb of=sd-backup.bin

You now have an exact replica of the card! You can burn this image to a SD Card by following the directions in the next section.

Before continuing, please first read the above section about how images are created. It contains important notes about using 'fdisk' to discover device nodes!

You can restore an image by burning it to an SD Card using the 'dd' command. PLEASE BE CAREFUL - if you tell 'dd' to write to the wrong device node, you could very well overwrite your PC's harddrive! Double-check your device node labels, and then 'dd' the image onto the SD Card:

$ sudo dd bs=1024 if=sd-backup.bin of=/dev/sdb

Please note that the 'dd' command takes a significant amount of time, and will generally eat through a large amount of memory. Do not be surprised if your computer slows down for a long period while this process completes.

The timezone is set by creating a soft link from a file in /usr/share/zoneinfo to /etc/localtime. There are a set of tzdata opkg's covering different areas and a tzdata file with global coverage. If there is no /usr/share/zoneinfo directory, you need to install a tzdata package.

The E100 ships with a bootable SD card, however, due to product lead times it is highly recommended that users update the installed Linux kernel, boot files, and kernel modules to a current version. Optionally, the entire root file system, which includes updated kernel modules, can also be updated. Please see the following pages for further information and instructions.

The E100 firmware is loaded from the root file system at runtime. By default UHD will search in the location <install-path>/share/uhd/images. Typically <install-path> will be /usr/local if installing from source. For the UHD installation included with the root file system image (and packager based installations in general), <install-path> will be simply /usr.

The most recent and previous firmware files can be downloaded from the UHD page

Note that this only applies if you are not using one of the Ettus distributed images (e.g., e1xx-001)!! You only need to go through these steps if you are starting with a fresh / clean install of an operating system, and need to build GNU Radio from scratch! The e1xx-xxx images that Ettus Research distributes has these steps already done for you!

You can temporarily change the screen resolution by changing the dvimode variable in u-boot. For example

# setenv dvimode 1440x900MR-16@60
# boot

This sets the display resolution to 1440x900. Don't worry about the MR-16@60 bit for now, this should work for most reasonable display resolutions. Once you find a setting that works well with your monitor, you will need to create a boo.scr file to make the change stick across reboots.

Make a file boot.cmd with:

setenv dvimode 1440x900MR-16@60
if run loaduimage; then run mmcboot; fi