[[hardware]]
== icE1usb Hardware

The icE1usb Hardware consists of a single circuit board (in an optional
enclosure).

It's main building blocks are:

* an iCE40 FPGA
* Two E1 line interface (transformers, biasing networks and ESD protection) footnote:[Second interface requires firmware >= 0.2 and OHCI/OHCI/EHCI host controller]
* a GPS receiver module with 1PPS output to the FPGA footnote:[Requires firmware >= 0.2]

=== Schematics

As icE1usb is an OSHW (Open Source Hardware) project, the full schematics
and design files are publicly available.

The design files in KiCAD formwa are available at https://git.osmocom.org/osmo-e1-hardware/tree/hardware/icE1usb

PDF rendered schematics are available at https://git.osmocom.org/osmo-e1-hardware/plain/hardware/icE1usb/r1.0/icE1usb.pdf

=== Connectors on E1 side

image::images/icE1usb-e1_side.jpg[width=400,title="E1 side of icE1usb"]

From left to right, there are the following connectors:

* X5A: Primary E1 Port
* X5B: Secondary E1 Port

==== X5A and X5B: E1 Interface Connectors

On one side of the PCB there are two RJ45 connectors next to each other.

Those are the two E1 line interfaces.  The interfaces are of symmetric
120 Ohms type.

Assuming the board is oriented with the tab of the RJ45 connectors facing
up:

* Interface 0 is on the right side
* Interface 1 is on the left side (next to the button)

The pin-out of the connectors can be swapped between TE and NT mode using
the J4 and J5 jumper blocks on the circuit board.

The factory default setting of the jumpers is TE-mode.

In case you're using the icE1usb with user-side equipment such as a GSM BTS,
a PBX, a Router or the like which traditionally was attached to the public
network, those devices all implement TE mode.  In such situations you need
to either switch the icE1usb to NT mode (and use straight wiring), or use
an E1 cross-over cable.

.Pin-out of RJ45 E1 connectors
[options="header"]
|===
| Pin | Function (TE) | Function (NT Mode)
| 1   | Rx            | Tx
| 2   | Rx            | Tx
| 3   | not used      | not used
| 4   | Tx            | Rx
| 5   | Tx            | Rx
| 7   | not used      | not used
| 8   | not used      | not used
|===

NOTE: E1 cables use RJ45 like Ethernet, but Ethernet cables have a
different pin-out.  Particularly, you cannot use an Ethernet cross-over
cable as an E1 cross-over!

==== Switching between TE/NT mode

To change the mode, unscrew the 2 PH0 screws on the side with the 2 RJ45 jacks. You'll also need to unscrew the nut on the SMA jack on the other side.
After that, the cover plate and rubber gasket around the 2 RJ45 jacks can be removed. The PCB can be slid out of the case.

[frame="none"]
[grid="none"]
|===
|image:images/te_t.png[width=250,title="icE1usb jumpered for TE mode"] |image:images/nt_t.png[width=250,title="icE1usb jumpered for NT mode"]
| *TE mode* (default)  | *NT mode*  |
|===

Each 2x4 jumper block is connected to the nearest RJ45 connector.

=== Connectors on USB side

image::images/icE1usb-usb_side.jpg[width=400,title="USB side of icE1usb"]

From left to right, there are the following connectors:

* X1: GPS Antenna Connector
* X2: Serial Console Connector
* X4: USB Connector
* X3: GPIO / Extension Connector

==== X4: USB Connector

The USB connector is a USB Type C connector.   However, it only carries
USB 1.1 full-speed signals.  5V DC power is also sourced from this
connector.

==== X2: Serial Console Connector

The serial console is used for development and debugging.  It uses an
Osmocom-style 2.5mm stereo TRS jack.

The serial console uses 3.3V CMOS logic levels

The serial console uses a rate of 1000000 bps.

The pin-out is as follows:

* Tip: Tx output from PC (Rx input of icE1usb)
* Ring: Rx input of PC (Tx output of icE1usb)
* Shield: GND

A compatible cable can be sourced from the sysmocom web-shop at
http://shop.sysmocom.de/.

==== X1: GPS Antenna Connector

The GPS antenna connector is a female SMA connector.

You can connect most standard active GPS antennas with built-in LNA.

icE1us provide phantom voltage.

The use of a GPS antenna is only required when you need a high precision
clock reference for the 2.048 MHz E1 bit clock, e.g. to provide a clock
reference to a cellular base station on the A-bis interface.

==== X3: GPIO / Extension Connector

This is a RJ45 connector adjacent to the USB connector.

It is currently unused and reserved for future use.


[[hw-pushbutton]]
=== Pushbutton

This is a push-button next to the _E1 interface '1'_.   It is recessed
to protect against accidental use.   You will need to use a paper clip,
pen tip or other similar object to push it.

The button can be used to force booting into the DFU loader in order to
recover from a broken firmware installation.


=== Multi-Color LED

Above the USB-C connector, there is a multi-color RGB LED.

This LED is used by the firmware to indicate a variety of status
information.  Pleas see the firmware documentation in <<firmware>>.
