Project

General

Profile

Actions

IcE1usb » History » Revision 23

« Previous | Revision 23/31 (diff) | Next »
laforge, 01/01/2022 09:34 PM


iCE40 E1 USB interface

This page is the main entry point for the (completed!) "Software defined" E1 USB interface using the iCE40 FPGA at its core.

Architecture

This approach tries to implement as much as possible inside an iCE40 FPGA

Particularly, the iCE40 FPGA
  • contains the E1 PHY. There is no external LIU*, reducing the BOM cost significantly. Instead, the comparators of the FPGA are used to detect RX positive / negative pulses and normal CMOS drivers to generate the TX pulses. In practice, this has shown to work reliably on short E1 links of a few meters. We'd expect some problems in terms of long-haul E1 links, but those are not really the target use case here.
  • contains the E1 framer, including frame alignment, CRC4 verification/generation, ...
  • contains a USB softcore (no external USB PHY needed)
  • contains a PicoRV32 softcore to implement USB protocol handling and to connect the E1 softcore with the USB softcore

So all-in-all, we can build a USB-E1 interface from little more than an iCE40 FPGA and an E1 line transformer!

Current stack

  • The hardware for the first production version is documented in the https://git.osmocom.org/osmo-e1-hardware
  • The fpga gateware and associated embedded firmware is hosted in the same git repository. Some parts are in submodules (be sure to use recursive clone)
  • The userspace daemon that handles the USB communication is hosted at: https://git.osmocom.org/osmo-e1d
  • The support for this daemon interface to the rest of the cellular stack is merged in mainline libosmo-abis. Make sure you build it with --enable-e1d, though.

Availability

The fully assembled and tested icE1usb hardware is sold by sysmocom (product page, data sheet) an can be purchased from the webshop - hobbyist/community discounts are available.

Presentations

User Manual

Status

Hardware

  • First proof of concept was done in 2018, based on manually wired protoboard to prove viability of the USB and E1 interface.
  • Several hand-wired pre-production prototypes based on iCEbreaker and iCEbreaker-bitsy have been assembled and used successfully from late 2018 to early 2020
  • A fully integrated single-board design with two E1 lines and a GPS-DO for E1 clock stability has been created by tnt in August 2020. After a couple of prototypes were built and tested, a first production run was made
  • fully tested v1.0 units are available since November 2020 through the sysmocom shop.

Firmware / Gateware / Drivers

The full stack from gateware through firmware and host software has been tested and used in a variety of scenarios.

Major missing features at this time (December 2020):
  • no firmware support for the second line/port yet: #4914
  • no firmware support for the GPS-DO peripheral yet: #4672, #4673
  • osmo-e1d doesn't re-attach to the USB device after disconnect/reconnect:
  • no reporting of alignment status via E1 port LEDs:
  • no reporting of errors (CRC, alignment) via USB to osmo-e1d: #4674
  • Rx/Tx framer operation not yet configurable (always uses CRC4): #4675

Recent binary releases of both gateware can be found below, so you don't have to build them locally :

Credits

The development of FPGA softcores, firmware, PCB schematics, PCB layout and osmo-e1d was done by Sylvain Munaut (tnt).

Hardware pictures

Early Proof-of-Concept and Prototypes

Early Proof of concept
picture of iCEBreaker + external circuitry (transformer, ..)

Pre-production Prototype

Rev 1.0 production

Rev 1.0 Production PCB
Rev 1.0 Production Batch

Files (9)
osmodevcon_2019_e1.pdf View osmodevcon_2019_e1.pdf 2.11 MB tnt, 07/17/2019 06:25 PM
osmocon_2018_e1.pdf View osmocon_2018_e1.pdf 5.79 MB tnt, 07/17/2019 06:25 PM
ice40-e1.jpg View ice40-e1.jpg 2.38 MB picture of iCEBreaker + external circuitry (transformer, ..) laforge, 01/13/2020 11:22 AM
osmo-e1-ice40.jpg View osmo-e1-ice40.jpg 233 KB laforge, 08/22/2020 07:15 AM
prod_pcb.jpg View prod_pcb.jpg 594 KB Rev 1.0 Production PCB tnt, 10/28/2020 07:54 PM
proto_poc.jpg View proto_poc.jpg 667 KB Early Proof of concept tnt, 10/28/2020 07:54 PM
prod_batch.jpg View prod_batch.jpg 1.72 MB Rev 1.0 Production Batch tnt, 10/28/2020 07:54 PM
icE1usb-e1_side.jpg View icE1usb-e1_side.jpg 1.72 MB laforge, 11/16/2020 10:39 PM
icE1usb-usb_side.jpg View icE1usb-usb_side.jpg 1.87 MB laforge, 11/16/2020 10:39 PM

Updated by laforge about 2 years ago · 23 revisions

Add picture from clipboard (Maximum size: 48.8 MB)