

Tedium x8
TDM telephony experimentation
- Size
- 96 × 70 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 283
- Nets
- 290
- Pads
- 1,498
- Tracks, vias
- 3,270, 978
- Pours
- 47
- Routed
- Yes
- KiCad
- KiCad 5 (file 20210824)
- Created
- 23 Jul 2019
- Updated
- 11 Jul 2022
Overview
Tedium x8 is an open-source printed circuit board by jboone, from the jboone/tedium repository on GitHub, published under the BSD-3-Clause licence. It is a 4-layer board of 96 × 70 mm with 283 parts on 290 nets, routed with 3,270 tracks and 978 vias.
It is built around the LFE5U-85F-8BG381I, USB3317C-CP-TR and TPS62823DLC, with the 93LC46C-I/P, ADM7171ACPZ-1.8-R7 and ADM7171ACPZ-3.3-R7 among its other parts. Its parts include 138 capacitors, 77 resistors, 18 ICs, 11 inductors and 6 connectors. It belongs with the FPGA and CPLD boards of this library.
Main components
9LFE5U-85F-8BG381I
CABGA-381-40℃~+100℃ 1.045V~1.155V 205 21000 3833856bit 84000 ECP5 Supports hot swap、Supports SEU error detection and correction CABGA-381 Programmable Logic Device (CPLDs/FPGAs) ROHSLatticeProgrammable Logic Device (CPLDs/FPGAs)USB3317C-CP-TR
QFN-24-EP(4x4)-40℃~+85℃ 1.6V~3.6V 20uA Transceiver USB 2.0 QFN-24-EP(4x4) USB Converters ROHSMicrochip TechnologyUSB ConvertersTPS62823DLC
SON85.5V, 3A Step-Down Converter Family with 1% AccuracyTexas InstrumentsUncategorised93LC46C-I/P
PDIP-8-40℃~+85℃ 1,000,000 cycles 1Kbit 2.5V~5.5V 200 Years 3MHz 6ms Built-in power-on reset (POR)、Built-in write enable latch (WEL)、Power-down/Power-up protection circuit SPI PDIP-8 EEPROM ROHSMicrochip TechnologyEEPROMADM7171ACPZ-1.8-R7
LFCSP-8(3x3)-40℃~+125℃@(Tj) 1 1.8V 135mV@(1A) 1A 2mA 5uVrms 6.5V Fixed Over Current Protection、Thermal shutdown、Enable control、Input under-voltage protection、Adjustable soft-start、Built-in soft-start Positive LFCSP-8(3x3) Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSAnalog DevicesVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsADM7171ACPZ-3.3-R7
LFCSP-8(3x3)-40℃~+125℃ 1 1A 2mA 3.3V 42mV@(500mA) 5uVrms 6.5V 60dB@(100kHz) Fixed Over Current Protection、Thermal shutdown、Enable control、Input under-voltage protection、Adjustable soft-start、Built-in soft-start Positive LFCSP-8(3x3) Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSAnalog DevicesVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsADP150AUJZ-2.5-R7
TSOT-5-40℃~+125℃@(Tj) 1 105mV@(150mA) 10uA 150mA 2.5V 5.5V 70dB@(10kHz) 9uVrms Fixed Over Current Protection、Over Temperature Protection、Enable Positive TSOT-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSAnalog DevicesVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsFT2232HL
QFP64Dual High Speed USB to Multipurpose UART/FIFO ICFTDIUncategorisedBC817
SOT-231 NPN 100nA 150MHz 300mW 40 45V 500mA 5V 700mV NPN SOT-23 Bipolar (BJT) ROHSShikuesBipolar (BJT)
README
README.mdtedium
TDM telephony experimentation
Dependencies
oss-cad-suite: open-source digital design and verification tools, with nightly binary builds.poetry: Python dependencies and packaging management tool.g++-riscv64-linux-gnurustup toolchain install stable -t riscv32i-unknown-none-elf
Installation
Clone this repository, and generally follow these steps:
$ cd tedium
# Grant access through `udev` to the FTDI JTAG interface on the Tedium board.
$ sudo ln -sf ./99-tedium.rules /etc/udev/rules.d/
$ sudo udevadm control --reload-rules && sudo udevadm trigger
#
$ pip3 install poetry --user
# Might need to log out and in to get ~/.local/bin in PATH.
# Or, `source ~/.profile`.
# Set up virtual environment, download and install dependencies
$ poetry install
# Enter poetry shell
$ poetry shell
# Include OSS CAD Suite tools in PATH
$ export PATH="/home/jboone/src/fpga/oss-cad-suite/bin:$PATH"
# Build and download FPGA bitstream
# LUNA_AVOID_BLOCKRAM required for reliable USB enumeration as of 2022/May/02.
$ LUNA_AVOID_BLOCKRAM=1 applets/tedium-fpga
# After the bitstream is generated, you can inspect the results in the `build` directory.
# Initialize the framer/LIU
$ cargo run --release --bin tedium-tool -- init
# Run the host-side audio and event engine
$ cargo run --release --bin tedium-tool -- monitorNOTE: My Tedium .venv got weird when I had the "OSS CAD Suite" environment already enabled.
Poetry would download dependencies on poetry install or poetry update, but would then
delete them when running poetry run or poetry shell.
Testing
Unit tests may be run like this:
$ python3 -m unittest tests.hdl.tx_usb_to_fifo
# Or the name of any other HDL test module you want to run/simulate.USB Debugging
$ sudo cat /sys/kernel/debug/usb/devices
$ sudo cat /sys/kernel/debug/dynamic_debug/control | grep "snd_usb_audio"
$ sudo echo 'file sound/usb/* +p' >/sys/kernel/debug/dynamic_debug/control
$ sudo sysctl -w kernel.printk=7 # debug-level messages
$ sudo sysctl kernel.printkUsing Wireshark
$ sudo modprobe usbmon
$ sudo wireshark
# Capture stuffWireshark filters that might be of use:
# Find USB IN on endpoint 1, where the frame of completed inbound URBs is not the typical length.
# This helps find where the async audio input FIFO level is wrapping around.
usb.endpoint_address.number==1 && usb.endpoint_address.direction==IN && usb.urb_type=='C' && frame.len != 1728
# Set the time reference at an interesting record in Wireshark, disable view filtering, and work from there.
# Note that "marked" records appear regardless of whether they match the view filter, which is very handy.
# Now match on USB OUT records that have been submitted (pending transmission)
usb.endpoint_address.number==1 && usb.endpoint_address.direction==OUT && usb.urb_type=='S'However, it seems like Wireshark isn't showing complete URB buffer contents?
Trouble With Real-Time Kit
# Is there an `rtkit` user?
$ getent passwd rtkit
# Is there an `rtkit*` user?
$ ps ax | grep -i rtkit
# Check that RTKit is actually changing our process/thread priority:
$ journalctl -e -t rtkit-daemon
# `ulimit` values:
$ ulimit -aUse
See the software README for information on how to use tedium-tool to interact with the hardware over USB.
License
This software and gateware in this project is licensed under the BSD 3-Clause License.
The hardware is licensed under the CERN Open Hardware Licence Version 2 - Permissive.
Parts
283| Qty | Value | Footprint | References |
|---|---|---|---|
| 67 | 100N | ipc_capc:IPC_CAPC60X30X33L15N | C10, C11, C13, C14, C101, C102, C103, C104, C107, C108, C109, C110, C113, C114, C115, C116 +51 |
| 20 | 100N | ipc_capc:IPC_CAPC100X50X55L25N | C30, C35, C36, C100, C106, C112, C120, C121, C122, C123, C124, C125, C130, C131, C132, C138 +4 |
| 17 | 10U | ipc_capc:IPC_CAPC160X80X90L35N | C1, C2, C28, C29, C31, C32, C33, C34, C56, C91, C92, C93, C105, C111, C117, C118 +1 |
| 15 | 10K | ipc_resc:IPC_RESC100X50X40L25N | R1, R29, R31, R37, R41, R42, R43, R44, R52, R53, R59, R60, R62, R65, R69 |
| 11 | 4K7 | ipc_resc:IPC_RESC100X50X40L25N | R21, R32, R34, R38, R40, R46, R47, R48, R50, R68, R72 |
| 10 | 100K | ipc_resc:IPC_RESC100X50X40L25N | R3, R6, R7, R9, R23, R25, R28, R56, R57, R58 |
| 10 | 4U7 | ipc_capc:IPC_CAPC160X80X90L35N | C17, C18, C19, C81, C82, C83, C86, C87, C88, C136 |
| 6 | GND | tp:TP_1MM | TP11, TP12, TP13, TP14, TP15, TP16 |
| 6 | L_Small | ipc_beadc:IPC_BEADC160X80X95L40N | L1, L7, L8, L9, L10, L11 |
| 5 | 0R1 | ipc_resc:IPC_RESC320X160X89L51N | R4, R5, R49, R51, R55 |
| 5 | 10R | ipc_resc:IPC_RESC100X50X40L25N | R16, R17, R54, R63, R64 |
| 5 | 2K2 | ipc_resc:IPC_RESC100X50X40L25N | R33, R35, R36, R61, R67 |
| 5 | DNP | ipc_resc:IPC_RESC100X50X40L25N | R14, R15, R18, R20, R22 |
| 4 | 1U | ipc_capc:IPC_CAPC160X80X90L35N | C12, C20, C129, C137 |
| 4 | 5K1 | ipc_resc:IPC_RESC100X50X40L25N | R73, R74, R75, R76 |
| 4 | INA180B2 | ti:TI_DBV_SOT-23-5 | U13, U15, U16, U18 |
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4 |
| 4 | TestPoint | tp:TP_1MM | TP7, TP8, TP9, TP10 |
| 3 | 10N | ipc_capc:IPC_CAPC100X50X55L25N | C90, C119, C127 |
| 3 | 1K | ipc_resc:IPC_RESC100X50X40L25N | R13, R19, R30 |
| 3 | 22U | ipc_capc:IPC_CAPC320X160X180L55N | C133, C134, C135 |
| 3 | LED | ipc_ledc:IPC_LEDC1608X90L40N | D1, D2, D3 |
| 3 | Polyfuse_Small | ipc_fussc:IPC_FUSSC257X321X120L50N | F1, F2, F3 |
| 2 | 100N | ipc_capc:IPC_CAPC160X80X90L35N | C126, C128 |
| 2 | 100N | ipc_capc:IPC_CAPC200X125X135L45N | C21, C25 |
| 2 | 100U | ipc_capc:IPC_CAPC320X160X180L55N | C26, C80 |
| 2 | 120P | ipc_capc:IPC_CAPC100X50X55L25N | C23, C24 |
| 2 | 22U | ipc_capc:IPC_CAPC160X80X90L35N | C27, C38 |
| 2 | 30K | ipc_resc:IPC_RESC100X50X40L25N | R8, R10 |
| 2 | 330R | ipc_resc:IPC_RESC160X80X55L25N | R39, R70 |
| 2 | 470N | wurth:WE-HCI_7050 | L2, L3 |
| 2 | ? | ipc_capc:IPC_CAPC100X50X55L25N | C84, C85 |
| 2 | INA180B3 | ti:TI_DBV_SOT-23-5 | U12, U17 |
| 2 | L_Small | ipc_beadc:IPC_BEADC200X125X105L50N | L5, L6 |
| 2 | Q_PMOS_GSD | ipc_sot:IPC_SOT23-3P95_237X112L50X42N | Q2, Q3 |
| 2 | TPS62823 | ipc_son:IPC_SON8P50_200X150X100L35X25N | U3, U4 |
| 2 | USB_C | amphenol:12401610E4#2A | P1, P2 |
| 1 | 0R01 | ipc_resc:IPC_RESC320X160X89L51N | R2 |
| 1 | 100R | ipc_resc:IPC_RESC100X50X40L25N | R77 |
| 1 | 100R | ipc_rescax:IPC_RESCAXS8P80_320X160X60L30X45N | RN1 |
| 1 | 12K | ipc_resc:IPC_RESC100X50X40L25N | R66 |
| 1 | 12M | ipc_osccc:IPC_OSCCC320X250X120L75X100N | X2 |
| 1 | 16M384 | abracon:ASVMB | X1 |
| 1 | 1N2 | ipc_capc:IPC_CAPC160X80X90L35N | C22 |
| 1 | 1U | coilcraft:SER1590 | L4 |
| 1 | 26M | ipc_oscsc:IPC_OSCSC4P254_500X320X140L100X120N | X3 |
| 1 | 280K | ipc_resc:IPC_RESC100X50X40L25N | R27 |
| 1 | 432R | ipc_resc:IPC_RESC100X50X40L25N | R12 |
| 1 | 47U | ipc_capc:IPC_CAPC320X160X180L55N | C16 |
| 1 | 50R | ipc_resc:IPC_RESC100X50X40L25N | R26 |
| 1 | 536K | ipc_resc:IPC_RESC100X50X40L25N | R24 |
| 1 | 68K1 | ipc_resc:IPC_RESC100X50X40L25N | R11 |
| 1 | 7K68 | ipc_resc:IPC_RESC100X50X40L25N | R45 |
| 1 | 8K06 | ipc_resc:IPC_RESC100X50X40L25N | R71 |
| 1 | 93LC46C | ipc_soic:IPC_SOIC8P127_490X600X175L83X41N | U9 |
| 1 | ADM7171ACPZ-1.8-R7 | ipc_son:IPC_SON9P50_300X300X80L40X25T244X160N | U8 |
| 1 | ADM7171ACPZ-3.3-R7 | ipc_son:IPC_SON9P50_300X300X80L40X25T244X160N | U6 |
| 1 | ADP150AUJZ-2.5-R7 | ipc_sot:IPC_SOT23-5P95_280X100L45X40N | U7 |
| 1 | BARREL_JACK | cui:PJ-102AH | CON1 |
| 1 | BC817 | ipc_sot:IPC_SOT23-3P95_237X112L50X42N | Q1 |
| 1 | Conn_02x20_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x20_P2.54mm_Vertical | J1 |
| 1 | Conn_ARM_JTAG_SWD_10 | Connector_PinHeader_1.27mm:PinHeader_2x05_P1.27mm_Vertical | J5 |
| 1 | DNP | Connector_PinHeader_1.27mm:PinHeader_2x05_P1.27mm_Vertical | J3 |
| 1 | FT2232H | ipc_qfp:IPC_QFP64P50_1200X1200X160L60X22N | U10 |
| 1 | LFE5U-85F-8BG381 | lattice:LATTICE_BGA_CABGA381 | U1 |
| 1 | QSPI8 | ipc_soic:IPC_SOIC8P127_528X790X216L65X41N | U14 |
| 1 | TPS53318 | ipc_son:IPC_SON23P50_600X500X150L50X27T547X324N | U2 |
| 1 | USB3317C-CP | ipc_qfn:IPC_QFN25P50_400X400X100L40X24T250N | U11 |
| 1 | V1P1_I | tp:TP_1MM | TP1 |
| 1 | V1P8_I | tp:TP_1MM | TP6 |
| 1 | V2P3_I | tp:TP_1MM | TP3 |
| 1 | V2P5_I | tp:TP_1MM | TP5 |
| 1 | V3P3_I | tp:TP_1MM | TP4 |
| 1 | V3P8_I | tp:TP_1MM | TP2 |
| 1 | XRT86VX38 | ipc_bga:IPC_BGA256CP100_16X16_1700X1700X178B55N | U5 |
More from jboone/tedium
2- 2 layers106 × 158 mm

- 4 layers109 × 46 mm

Similar boards
- 4 layers193 × 105.2 mm

AFE V3
Pgr18/CELL_Z_SPECT_hardware
Печатные платы для проекта клеточной импедансной спектроскопии
293 parts - 2 layers104.1 × 74.9 mm

ISA8 Ethernet
Vakon84/isa8_eth
If EEPROM has not been programmed prior to assembly, now it is a good time to do so. The U3 EEPROM contains the following configuration for the RTL8019AS chip: MAC address ISA resources for jumperless configuration Base…
34 partsCERN-OHL-S-2.0 - 4 layers160 × 100 mm

Transmitter
yacremann/TimeDistributionSystem
Time distribution system for pulsed laser laboratories
279 partsGPL-3.0 - 4 layers130 × 106.7 mm

Svga devboard
Doomn00b/Open-SVGA
Video-card and GPU for the PC x86 platform, including PCB reference-design
183 parts6 - 4 layers97.6 × 74.8 mm

Project byte hamr
robertrico/project_byte_hamr
Open source expansion platform for Apple IIe prototyping and development
93 parts2 - 4 layers129.5 × 52.3 mm

- 2 layers140.6 × 25.9 mm

ESP32 SmartGlass
jobitjoseph/ESP32-AI-SmartGlass
The ESP32 AI Smartglass is an innovative wearable device that blends the power of artificial intelligence with the convenience of home automation.
47 parts16 - 4 layers165 × 50 mm

Questions
How big is the Tedium x8 PCB?
It measures 96 × 70 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Tedium x8 use?
283 parts, built around the LFE5U-85F-8BG381I, USB3317C-CP-TR, TPS62823DLC and 93LC46C-I/P. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Tedium x8 KiCad files?
From the jboone/tedium repository on GitHub, at the commit this page was made from: the board is hardware/tedium_x8/tedium_x8.kicad_pcb and its schematic hardware/tedium_x8/fpga_bank.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Tedium x8 design in my own project?
Its repository publishes it under the BSD-3-Clause licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).