Skip to content

Testing a box hardware

:warning: Check Releases For Stable Versions

Version 2, Revision B

Fixed in Version 2, Revision B

  • USB hub inputs 2 and 3 do not work as their data lines are connected incorrectly: Fixed #35
  • I2C bus SCL and SDA lines connected incorrectly: Fixed #39
  • Capacitor C41 connected incorrectly in reverse polarity: Fixed #41
  • Missing VBUS discharge circuitry: Fixed #42
  • Silkscreen for 'Optocoupler Enable' is incorrect: Fixed #43
  • Missing protection diodes on USB-C interface: Fixed #44
  • N-Channel MOSFET incorrectly used in bill of materials instead of P-Channel MOSFET: Fixed #45
  • Incorrect QSPI_SS and flash_bootstrap circuitry: Fixed #46
  • Thermal issues: Fixed #51
  • Improve silkscreen markings: Implemented #47
  • Potentially improve channel routings: Implemented #48
  • Add hardware limitation so only one power output can be selected at a time as a precaution: Implemented #50

About

Testing in a box hardware is a compact one-stop-shop solution that provides communication with a device under test via CAN, SPI, I2C and serial. It also allows users to connect up to 3 additional USB peripherals and is equipped with USB HID emulation and optocoupled GPIOs.

Product images

TIAB hardware images - 1

TIAB hardware images - 2

Pin out diagram

 TIAB pinout diagram

FT4232H

Each of the channels A and B can be setup as either:

  • Multi Protocol Synchronous Serial Engine (MPSSE) - JTAG, SPI, I2C, etc.
  • UART
  • Bit-Bang

Each of the channels C and D can be setup as either:

  • UART
  • Bit-Bang

The RP2040 SWD connection is connected to channel A, so can only be used when not using channel A for other functionality.

The RP2040 serial connection is connected to channel D, so can only be used when not using channel D for other functionality.

Optocouplers 1, 2, and 3 are connected to ADBUS5, ADBUS6, and ADBUS7 (channel A) respectively, and so can only be controlled when not using the SWD connection, or using channel A for any other functionality.

Installing KiCAD 7

Hardware is developed using kicad 7. Download instructions can be found here.

Project Setup

Project uses sub-modules to get symbols and footprints. To clone to repo run:

git clone --recurse-submodules -j4  git@gitlab.com:CodethinkLabs/testing-in-a-box/firmware-hardware/testing-in-a-box-hardware.git

How To Use

NOTE: Tools for TIAB hardware are currenly under development.

  • Documentation and info about USB switch can be found here.
  • TIAB hardware makes use of the FT4242H which can used for serial connections, programming devices via JTAG and SWD, general purpose I/O, for communications protocols such as I2C and SPI, and more. The datasheet for the FT4232H can be found here. Docs for pylibftdi can be found here.
  • The onboard RP2040 allows control of the RGB status LED, which could be used for indicating the status of a test. It allows emulation of HIDs (Human Interface Devices) through the HID output port. It also runs the protocol layer for the USB-PD. And more! Documentation for the RP2040s firmware can be found here.

How To Connect I2C

pyftdi I2C wiring

PORT ON THE IDC I2C PORT
GND GND
+3.3v VCC
Channel A/B 0 SCL
Channel A/B 1 SDA
Channel A/B 2 SDA

How To Connect SPI

pyftdi SPI wiring

PORT ON THE IDC SPI PORT
GND GND
+3.3v VCC
Channel A/B 0 SCK
Channel A/B 1 SDI
Channel A/B 2 SDO
Channel A/B 3 CS

How To Connect Serial

FT4232 Datasheet Section 3.1.2 Pin Descriptions

PORT ON THE IDC SERIAL PORT
Channel A/B/C/D 0 TX
Channel A/B/C/D 1 RX
Channel A/B/C/D 2 RTS
Channel A/B/C/D 3 CTS
Channel A/B/C/D 4 DTR
Channel A/B/C/D 5 DSR
Channel A/B/C/D 6 DCD

USB VID and PID Information

Codethinks USB VID is 0x27BD

The PID for the USB hub is 0x0D

The PID for the FT4232H is 0x0E