Osmocom icE1usb

Introducing Osmocom icE1usb

(Download the Data Sheet)

icE1usb

The icE1usb is a dual-port E1 adapter with a USB interface. It can be used to attach to circuit-switched primary-rate E1 circuits used in traditional/legacy telecom environments.

Today, E1 circuits can primarily be found in the context of cellular networks; whether to carry A-bis back-haul, Gb over Frame Relay, A over TDM interfaces or any classic circuit SS7 signaling.

Those few other E1 adapters available on the market are typically PCI / PCIe cards, which constrains their usage to larger servers with the appropriate slots. Contrary to that, icE1usb connects via USB to the computer, allowing for use cases like

  • E1 attached to a Laptop computer

  • E1 attached to embedded Single Board Computers like for example Beagleboard, Raspberry Pi, Intel NUC or any other platform with a USB host controller.

E1 Clock / GPS-DO

E1 circuits not only carry symmetric full-duplex 2.048 Mbps data, but also a precise clock reference. Traditionally, this clock reference was provided by the public wide-area PDH/ISDN network.

As classic PDH/ISDN wide-area networks are less frequently deployed today, one important topic is the question of clock source. Many devices, including cellular base stations require a precise E1 clock as they use it as a reference for its internal clocks, which in turn drive the frequency synthesizers of the radio transmitters/receivers.

The Osmocom icE1usb solves this problem in a novel way: By integrating a GPS Disciplined Oscillator (GPS-DO) right in the E1 adapter.

Use of the GPS-DO is entirely optional. If your use case features a different E1 clock source, or it is happy with the precision of a normal crystal oscillator, you can use icE1usb without the GPS-DO functionality.

icE1usb E1 RJ45 connector side

Open Source Hardware

The icE1usb is 100% Open Source Hardware (OSHW). This includes

  • mechanical cad files

  • schematics, circuit board layout, bill of materials

  • Verilog/HDL sources for the gateware

  • C source code for the firmware running on the PicoRV32 softcore in the FPGA

  • C source code for the (Linux) drivers on the host computer

Having the entire design as OSHW ensures future availability. At a time where most silicon E1 framers are already long end-of-life, open source hardware is a future-proof alternative.

Furthermore, the hardware design is synthesized using open source tools only (yosys and nextpnr), to remove the dependency on using proprietary vendor tools.

Software Interface / Drivers

The Osmocom icE1usb does not require any kernel driver, but instead uses a userspace daemon (osmo-e1d), which in turn utilizes libusb in order to get access to the USB bus of the host computer.

osmo-e1d is fully integrated with libosmo-abis,

Integration with other drivers/software is not provided at this point, but it is relatively straight-forward due to the simplicity of the E1 protocol implemented over USB: The isochronous USB transfers basically consist of octet-aligned 32-byte E1 frames. sysmocom can provide R&D and software integration services, if needed.

Technical Data

Mechanical / Electrical specification

Dimensions of Device

90 x 63 x 30 mm (length excluding SMA connector)

Power Supply

USB bus powered

E1 interface

balanced E1 on RJ45 connector; one for each E1 circuit

long haul / short haul

tested with short-haul only at this point!

Antenna connector of GPS-DO

SMA jack, female; provides DC phantom supply voltage to antenna

USB port

USB 2.0 full-speed on USB-C connector

Serial Console (for development)

Osmocom style 2.5mm stereo jack with UART at 3.3V level

Future Extensions

internal header for extension board; extra RJ45 socket

Software / Logical specification

USB Protocol/Interface

  • non-standard protocol using E1 frames in isochronous transfers

  • USB-DFU as per “Device Firmware Upgrade 1.1” by USB-IF

Linux driver

https://git.osmocom.org/osmo-e1d/

hardware/gateware/firmware git

https://git.osmocom.org/osmo-e1-hardware/

Microprocessor softcore

https://github.com/cliffordwolf/picorv32

E1 Framer softcore

https://github.com/no2fpga/no2e1.git

USB device softcore

https://github.com/no2fpga/no2usb.git

wiki / bug tracker

https://osmocom.org/projects/e1-t1-adapter/wiki/ICE40_E1_USB_interface

Schematics in PDF format

https://git.osmocom.org/osmo-e1-hardware/plain/hardware/icE1usb/r1.0/icE1usb.pdf

Block Diagram

Block Diagram